qputenv("QT_SCALE_FACTOR", "2.0");在QApplication app(argc, argv);后面无效
时间: 2023-07-19 17:40:14 浏览: 75
您提到的`qputenv`函数在`QApplication`对象创建之前设置是无效的,因为在创建`QApplication`对象之前,Qt 框架已经初始化了并设置了缩放因子。所以,正确的做法是在创建`QApplication`对象之后,但在显示主窗口之前设置缩放因子。
以下是一个示例代码,其中我们在创建`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
qputenv("QT_SCALE_FACTOR", "2.0");
window.show();
return app.exec();
}
```
在这个示例中,我们创建了一个主窗口,并在窗口中添加了一个按钮。然后,我们使用`qputenv`函数将`QT_SCALE_FACTOR`设置为`2.0`,最后显示主窗口并开始事件循环。当我们运行这个程序时,所有的元素都会以两倍大小显示。
相关问题
在Qt5.14qputenv("QT_SCALE_FACTOR", "2.0");无效
在 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`,然后显示主窗口并开始事件循环。当我们运行这个程序时,所有的元素都会以两倍大小显示。
Qt程序用qputenv("QT_SCALE_FACTOR","2.0");来缩放切换程序大小
是的,您是正确的。`qputenv`函数可以将环境变量`QT_SCALE_FACTOR`设置为`2.0`,从而实现Qt程序的放大缩小。
具体来说,这个环境变量可以用来控制应用程序的缩放因子,从而实现应用程序的缩放。当设置`QT_SCALE_FACTOR`为`2.0`时,应用程序的所有元素(包括字体、图标、窗口尺寸等)都会以原来的两倍大小显示。
以下是一个简单的示例:
```cpp
#include <QApplication>
#include <QMainWindow>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 设置缩放因子为2.0
qputenv("QT_SCALE_FACTOR", "2.0");
QMainWindow window;
QPushButton button("Hello, world!", &window);
window.setCentralWidget(&button);
window.show();
return app.exec();
}
```
在这个示例中,我们首先使用`qputenv`函数将`QT_SCALE_FACTOR`设置为`2.0`,然后创建了一个主窗口,并在窗口中添加了一个按钮。当我们运行这个程序时,所有的元素都会以两倍大小显示。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)