我的软件在 Windows 7 及更高版本上运行,并使用 Qt 5.8 以 100% dpi 缩放(控制面板 > 放大或缩小文本和其他项目)开发。
当我的用户将他们的 dpi 缩放比例设置为 150% 时,所有文本和布局间距都会增加,正如他们应该的那样,但其他一切都没有受到影响。
结果是一个损坏的 GUI,文本对于其他元素来说太大了。
我已经尽可能多地进行了研究,“简单的修复”是将环境变量设置QT_AUTO_SCREEN_SCALE_FACTOR为 true。
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1"); 是我在 main.cpp 中作为第一行添加的内容。
完全没有任何影响。唯一有任何影响的是,qputenv("QT_SCALE_FACTOR", "1.5");这绝对不是我想要的。
我如何告诉我的其余软件进行相应的扩展?
谢谢你的时间!
编辑:
答案可能有点晚了,但可能会有所帮助。
这对我有用。您可以通过在 QApplication 实例化时提供命令行选项来手动设置 DPIawareness。
官方文档位于https://doc.qt.io/qt-5/highdpi.html(DPI意识部分)。
根据文档,您可以将应用程序设置为 DPI Unaware(因此它将自动缩放,但显示会模糊)、System DPI Aware 或 Per-Monitor Aware。
下面是一个最小的示例代码,用于实例化 QApplication 以强制 DPI Unaware(并具有 UI 位图缩放),选择 0 以外的其他值以正确启用高 DPI:
int main()
{
int argc = 3;
char*argv[] = {(char*)"Appname", (char*)"--platform", (char*)"windows:dpiawareness=0";
(void) new QApplication(argc, argv);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9213 次 |
| 最近记录: |