我正在开发一台4k显示器,它很痛苦......
最后我设法建立了QtDesigner,然后发现了这个问题:
当您使用QT_AUTO_SCREEN_SCALE_FACTOR=1并使用radiobutton和其他基本小部件编译应用程序时,它看起来在4k屏幕上缩放.否则控件的尺寸是正确的,正如预期的那样,它只是不锐利,而是像素化.
我使用Qt 5.6 RC msvc2015 64bit在4k屏幕上运行Windows 10 Home 64bit,使用200%DPI变焦,并尝试使用相同的结果
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
Run Code Online (Sandbox Code Playgroud)
如果我使用
QGuiApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
Run Code Online (Sandbox Code Playgroud)
控件很清晰,文字大小正常但是所有尺寸都要小得多.
如何在高DPI屏幕上进行控制?
正如 Qt 文档所说:
Use QT_AUTO_SCREEN_SCALE_FACTOR to enable platform plugin controlled per-screen factors.
QT_SCREEN_SCALE_FACTORS to set per-screen factors.
QT_SCALE_FACTOR to set the application global scale factor.
Run Code Online (Sandbox Code Playgroud)
你可以尝试做 Qt Creator 正在做的事情:
static const char ENV_VAR_QT_DEVICE_PIXEL_RATIO[] = "QT_DEVICE_PIXEL_RATIO";
if (!qEnvironmentVariableIsSet(ENV_VAR_QT_DEVICE_PIXEL_RATIO)
&& !qEnvironmentVariableIsSet("QT_AUTO_SCREEN_SCALE_FACTOR")
&& !qEnvironmentVariableIsSet("QT_SCALE_FACTOR")
&& !qEnvironmentVariableIsSet("QT_SCREEN_SCALE_FACTORS")) {
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
}
Run Code Online (Sandbox Code Playgroud)
基本上重要的是最后一行QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);。
| 归档时间: |
|
| 查看次数: |
6918 次 |
| 最近记录: |