QT_AUTO_SCREEN_SCALE_FACTOR无效

问题描述 投票:5回答:1

我的软件在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");,但这绝对不是我想要的。

我如何告诉我的其余软件相应地扩展?

感谢您的时间!

编辑:

这是我的错误https://bugreports.qt.io/browse/QTBUG-55654

c++ qt dpi
1个回答
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);
}
© www.soinside.com 2019 - 2024. All rights reserved.