我正在为 Windows 10 编写一个简单的 Qt(Widgets)Gui 应用程序。我正在使用 Qt 的 5.6.0 测试版。
我遇到的问题是它根本无法缩放到我的 surfacebook 屏幕:
这有点难说,因为 SO 缩放了图像,但请注意停靠小部件标题栏控件相对于窗口标题栏控件有多小。
This link来自 Qt 谈论缩放,但它主要关注 qml/qtQuick 和一般的移动应用程序,另外似乎暗示在桌面 QtWidgets 应用程序中,QPainter
将自动确定适当的缩放比例,这很清楚不是。
确保桌面、非 qml Qt 应用程序在高 DPI 显示器(尤其是 Windows 10)上正确缩放的最佳方法是什么?
最佳答案
Qt 最近发布了一篇关于这个问题的博文 here .
从 Qt 5.6 开始启用高 DPI 支持。在 OS X 平台上,原生支持高 DPI。在 X11/Windows/Android 上,根据博客文章,有两种方法可以启用高 DPI 检测:
- 设置环境变量
- 在程序源代码中设置一个属性
在系统环境变量中设置 QT_AUTO_SCREEN_SCALE_FACTOR=1
将解决缩放问题。
此外,在您的应用程序源代码中设置 QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
也应该允许自动高 DPI 缩放。
注意:要使用属性方法,您必须在创建QApplication
对象之前设置属性 ,也就是说:
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
return app.exec();
}
关于c++ - Windows 10 中 Qt 桌面应用程序的不当缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35816944/