【发布时间】:2018-05-15 05:36:05
【问题描述】:
我的软件在 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::setAttribute(Qt::AA_EnableHighDpiScaling);也没有效果 -
我还想指出,我的 GUI 大约有一半是用 Qt Designer 创建的,其余的都是编码的。两者的行为相同。 (我想我什至希望 Qt Designer 创建可缩放的元素,但他们没有)
-
我最近在谷歌上搜索了这个主题,发现了很多类似的问题以及一些解决方法:我认为最值得在浏览器选项卡中打开的内容(但我只需要大约 15 分钟。再次找到它们):SO: Changing DPI scaling size of display make Qt application's font size get rendered bigger,Setting Qt To Ignore Windows DPI Text Size Personalization。
-
好的,有一点需要注意,我在默认情况下 dpi 较高的不同设备(Windows 10 lenovo flex 5)上进行了尝试。事实证明它确实自动缩放它,但它按 2 而不是设备设置的 1.5 缩放它。结果是文本变大了 1.5,但其他所有内容都增加了 2。它只需要整数的样子。我不知道从这里做什么......
-
???我在某处看到 Qt 5.10 已经发布。 (或者只是在开发中?)当他们希望尝试解决这个已知问题时,至少值得一看发行说明。