gpt4 book ai didi

Windows 上的 QT 高 DPI 支持

转载 作者:行者123 更新时间:2023-12-04 21:12:07 25 4
gpt4 key购买 nike

根据此处的文档http://doc.qt.io/qt-5/highdpi.html QT 5.4+ 引入了高 DPI 支持。
但是,要么我缺少一些基本的东西,要么当前的支持仍处于非常早期的阶段。
我正在编写一个全新的应用程序,所以我有机会从头开始。我知道我将不得不使用布局而不是固定定位等,但总是会有我必须指定的情况,例如控件的最小/最大大小。我可以在编辑器中指定它们,但这些是设备像素。因此,如果我将 Windows 设置更改为使用 150% DPI,那么编辑器中的最小值/最大值就会太小。当然我可以得到这个比率并在代码中调整所有需要的值,但是如果我必须手工完成所有事情,QT 会给我什么样的高 DPI 支持?我的意思是它与 QT 5.4 之前的版本有何不同?

然后一个有趣的是 QT_DEVICE_PIXEL_RATIO 环境变量。它完全符合我的需要,它将编辑器中设置的所有像素乘以一个因子。但为什么它是一个环境变量而不是每个应用程序设置?为什么它只支持 2、3 等整数值,因为我们知道 Windows 有 125、150% 等设置,为什么它不能自动读取 Windows 设置并将自己设置为该值?

最佳答案

我必须回应@Nicolas Holthaus 的回答,即您启用 Qt::AA_EnableHighDpiScaling 的方式可能不是绝对正确的。因为它将舍入用户 DPI 设置。例如。 Windows DPI 设置为 150%,字体和大小的结果将为 200%,而 125% 将为 100%。

正确进行 DPI 缩放的正确方法是设置环境变量 QT_SCALE_FACTOR .对于同一个例子,如果 DPI 设置为 150%,则设置 QT_SCALE_FACTOR带值 1.5 .那么结果将是字体和大小的 150%。

参见qt官方文档http://doc.qt.io/qt-5/highdpi.html你会发现
QT_SCALE_FACTOR [numeric] defines a global scale factor for the whole application, including point sized fonts.

关于Windows 上的 QT 高 DPI 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com