【发布时间】:2018-07-05 01:47:42
【问题描述】:
Qt 确实支持像素比 (devicePixelRatio),这在我的各种桌面上是不同的:
- ) 桌面 w1920 h1080 - 比率:1
- ) Desktop w3840 h2160 with
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")导致 Desktop w1280 h720 hi DPI ratio: 3 - ) 桌面 w3840 h2160 - ratio: 1 没有
QT_AUTO_SCREEN_SCALE_FACTOR
我想知道是否可以为我的应用程序手动调整此比率,例如在上面的示例 2 中使用“比率 2”。
那么有没有办法在运行时设置这个值?
基于http://doc.qt.io/qt-5/highdpi.html,我确实尝试过类似的东西
qputenv("QT_SCALE_FACTOR", QString::number(scaleFactor).toLocal8Bit());
实际上,我确实希望设置 int scaleFactor = 3 看起来像上面的数字 2,但它不一样。 1-4 看起来也很奇怪。
以下 3 行类似于qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")(基于https://stackoverflow.com/a/45168724/356726)
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); //HiDPI pixmaps
qputenv("QT_SCALE_FACTOR", "1");
PS:后续跟进
【问题讨论】:
-
你有没有想过解决方案?
-
部分,以后有时间会发在这里
-
我当前的解决方法发布在下面,它是在运行时但不是在任何时候(目标是什么)