#pragma once #include #include static inline double screen_dpi(const QPaintDevice* widget) { const auto& x = *widget; #ifdef _WIN32 return std::max(x.devicePixelRatioF(), 1.); #else return std::max(std::max(x.logicalDpiX()/(double)x.physicalDpiX(), x.devicePixelRatioF()), 1.); #endif } template struct screen_dpi_mixin { protected: double screen_dpi() const { return ::screen_dpi(static_cast(this)); } };