#include #include #include #include #include class MyProxyStyle : public QProxyStyle { public: virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override; }; int MyProxyStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const { if(metric==QStyle::PM_SmallIconSize) return 50; // some large icon size return QProxyStyle::pixelMetric(metric,option,widget); } int main(int argc, char *argv[]) { // non-integer device-pixel ratio causes problems // QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); // looks good at 1.5 device pixel ratio QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor); // drive icons incorrect at 1.5 device pixel ratio // application QApplication app(argc,argv); // use style to increase default small icon size QApplication::setStyle(new MyProxyStyle()); // tested on 4K screen under Windows 10 with a device pixel ratio 1.5 // select "My Computer" (icon in combo box looks correct) and then select one // of the drives (icon in combo box is now distorted). folder icons are okay. QFileDialog filedialog; // not relevant filedialog.setOption(QFileDialog::DontUseNativeDialog,true); filedialog.show(); return QApplication::exec(); }