我的软件在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(它将自动缩放,但显示将变得模糊),或系统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);
}