【发布时间】:2015-11-25 15:07:44
【问题描述】:
根据此处的文档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 设置并将自己设置为该值?
【问题讨论】:
-
您可以将此问题作为错误/建议发布在bugreports.qt.io下
-
您是否测试过 PassThrough 舍入模式?这对我有用:doc.qt.io/qt-5/qt.html#HighDpiScaleFactorRoundingPolicy-enum
标签: qt winapi dpi qtwidgets highdpi