测试环境:Visual Stdio2015(MSVC)+Qt5.15.2
字体行为
不设置QCoreApplication::setAttribute(ot::AA EnableHighDpiscaling)
pt会随着DPI变化,px则不会变。
设置QCoreApplication::setAttribute(ot::AA EnableHighDpiscaling)
pt会随着DPI变化,px也会变化。
控件/窗体行为
设置QCoreApplication::setAttribute(ot::AA EnableHighDpiscaling)
demo软件最外部边框窗体会变化,内部控件尺寸不会随着变化。
不设置QCoreApplication::setAttribute(ot::AA EnableHighDpiscaling)
demo软件最外部边框窗体和内部控件尺寸均随着dpi变化。
dpi项目经验
main函数中设置
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
// 5.14.0
#if QT_VERSION > 0x050E00
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
#endif
}
注意:
1.设置在QApplication构造之前
2.
3.