windows 10 中 Qt 桌面应用程序的不当缩放
improper scaling of Qt Desktop application in windows 10
我正在为 windows 10 编写一个简单的 Qt(Widgets)Gui 应用程序。我正在使用 Qt 的 5.6.0 beta 版本。
我遇到的问题是它根本无法缩放到我的 surfacebook 屏幕:
这有点难说,因为 SO 缩放了图像,但请注意停靠小部件标题栏控件相对于 window 标题栏控件有多小。
Qt 中的 This link 谈论缩放,但它主要关注 qml/qtQuick 和一般的移动应用程序,另外似乎暗示在桌面 QtWidgets 应用程序中,QPainter
将自动确定适当的缩放比例,这显然不是。
确保桌面 non-qml Qt 应用程序在 high-DPI 显示器上正确扩展的最佳方法是什么,特别是 windows 10?
Qt 最近发布了一篇关于此问题的博客 post here。
从 Qt 5.6 开始启用高 DPI 支持。在 OS X 平台上,原生支持高 DPI。在 X11/Windows/Android 上,根据博客 post:
,有两种启用高 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();
}
我正在为 windows 10 编写一个简单的 Qt(Widgets)Gui 应用程序。我正在使用 Qt 的 5.6.0 beta 版本。
我遇到的问题是它根本无法缩放到我的 surfacebook 屏幕:
这有点难说,因为 SO 缩放了图像,但请注意停靠小部件标题栏控件相对于 window 标题栏控件有多小。
Qt 中的This link 谈论缩放,但它主要关注 qml/qtQuick 和一般的移动应用程序,另外似乎暗示在桌面 QtWidgets 应用程序中,QPainter
将自动确定适当的缩放比例,这显然不是。
确保桌面 non-qml Qt 应用程序在 high-DPI 显示器上正确扩展的最佳方法是什么,特别是 windows 10?
Qt 最近发布了一篇关于此问题的博客 post here。
从 Qt 5.6 开始启用高 DPI 支持。在 OS X 平台上,原生支持高 DPI。在 X11/Windows/Android 上,根据博客 post:
,有两种启用高 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();
}