QT 高DPI缩放导致界面变大解决方案
如果将'QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling)'添加到代码中后,1080P分辨率界面变大了,可能是由于高DPI缩放引起的。可以尝试以下方法解决问题:
-
使用'QGuiApplication::setAttribute(Qt::AA_DisableHighDpiScaling)'来禁用高DPI缩放,看看是否能够恢复正常界面大小。
-
在'QApplication'或'QGuiApplication'对象创建之前设置环境变量'QT_AUTO_SCREEN_SCALE_FACTOR'为'1',例如在main函数的最开始处添加如下代码:
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", QByteArray("1"));
QApplication app(argc, argv);
- 修改应用程序的.manifest文件,添加以下内容:
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true/PM</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
- 使用'setBaseSize'方法设置窗口的基本大小,例如:
QWidget* widget = new QWidget;
widget->setBaseSize(QSize(1920, 1080)); // 设置基本大小为1080P分辨率
如果以上方法都无法解决问题,可能需要进一步调查代码中是否有其他因素导致界面变大。
原文地址: https://www.cveoy.top/t/topic/pX26 著作权归作者所有。请勿转载和采集!