我的软件在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");
但是这绝对不是我想要的。
如何判断我的软件的其余部分是否相应缩放?
谢谢你的时间!
修改
答案 0 :(得分:0)
可能要晚一点答案,但这可能会有所帮助。
这就是为我工作的东西。 您可以通过在QApplication的实例上提供命令行选项来手动设置DPIawareness。
官方文档在https://doc.qt.io/qt-5/highdpi.html(DPI意识部分)。
根据文档,您可以将应用程序设置为DPI Unaware(它将自动缩放,但显示将变得模糊),系统DPI Aware或每个监视器的感知。
这是用于实例化QApplication强制DPI未知(并具有UI位图缩放)的最小示例代码,选择非0的值以正确启用High DPI:
int main()
{
int argc = 3;
char*argv[] = {(char*)"Appname", (char*)"--platform", (char*)"windows:dpiawareness=0";
(void) new QApplication(argc, argv);
}