gpt4 book ai didi

qt - 我可以在运行时更改像素比(屏幕)吗?

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

Qt 确实支持像素比率 (devicePixelRatio),这在我的各种桌面上是不同的:

  1. ) 桌面 w1920 h1080 - 比例:1
  2. ) 桌面 w3840 h2160 与 qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1") 导致桌面 w1280 h720 hi DPI 比率:3
  3. ) 桌面 w3840 h2160 - 比率:1QT_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:跟进

最佳答案

这是我目前被问到的解决方法。它只有在我构建 UI 之前执行它才有效,所以我在开始时调用它。

传递 1.0 左右的值(例如 0.75)适用于高 DPI 屏幕。但我以后不能更改它。

void CGuiApplication::highDpiScreenSupport(double scaleFactor)
{
if (scaleFactor < 0)
{
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");
}
else
{
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); // HiDPI pixmaps
const QString sf = QString::number(scaleFactor, 'f', 2);
qputenv("QT_SCALE_FACTOR", sf.toLatin1());
}
}

关于qt - 我可以在运行时更改像素比(屏幕)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48449187/

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