如果将'QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling)'添加到代码中后,1080P分辨率界面变大了,可能是由于高DPI缩放引起的。可以尝试以下方法解决问题:

  1. 使用'QGuiApplication::setAttribute(Qt::AA_DisableHighDpiScaling)'来禁用高DPI缩放,看看是否能够恢复正常界面大小。

  2. 在'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);
  1. 修改应用程序的.manifest文件,添加以下内容:
<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <dpiAware>true/PM</dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>
  1. 使用'setBaseSize'方法设置窗口的基本大小,例如:
QWidget* widget = new QWidget;
widget->setBaseSize(QSize(1920, 1080)); // 设置基本大小为1080P分辨率

如果以上方法都无法解决问题,可能需要进一步调查代码中是否有其他因素导致界面变大。

QT 高DPI缩放导致界面变大解决方案

原文地址: https://www.cveoy.top/t/topic/pX26 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录