在Qt5.14qputenv("QT_SCALE_FACTOR", "2.0");无效
时间: 2023-07-19 12:40:14 浏览: 213
在 Qt 5.14 版本中,`qputenv` 函数设置 `QT_SCALE_FACTOR` 环境变量会失效是因为 Qt 5.14 引入了高 DPI 支持,使用了新的逻辑来处理高 DPI 缩放。因此,使用 `qputenv` 函数设置 `QT_SCALE_FACTOR` 环境变量无法改变应用程序的 DPI 缩放因子。
如果你需要在 Qt 5.14 及以上版本中设置应用程序的 DPI 缩放因子,可以使用 `QGuiApplication::setHighDpiScaleFactorRoundingPolicy` 函数来设置。
以下是一个示例代码,其中我们在创建 `QApplication` 对象之后,但在显示主窗口之前设置缩放因子:
```cpp
#include <QApplication>
#include <QMainWindow>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow window;
QPushButton button("Hello, world!", &window);
window.setCentralWidget(&button);
// 设置缩放因子为2.0
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
window.show();
return app.exec();
}
```
在这个示例中,我们使用 `QGuiApplication::setHighDpiScaleFactorRoundingPolicy` 函数将缩放因子设置为 `2.0`,然后显示主窗口并开始事件循环。当我们运行这个程序时,所有的元素都会以两倍大小显示。
阅读全文