我正在为Windows 10编写一个简单的Qt(Widgets)Gui应用程序。我使用的是Qt的5.6.0 beta版本。
我遇到的问题是它根本没有缩放到我的表面笔的屏幕上:
有点难以分辨,因为SO会缩放图像,但请注意停靠窗口小部件标题栏控制相对于窗口标题栏控件的小小。
来自Qt的 This link讨论了扩展,但它主要关注qml / qtQuick和移动应用程序,另外似乎暗示在桌面QtWidgets应用程序中,QPainter
将自动确定适当的缩放比例,但显然不是。
确保桌面非qml Qt应用程序在高DPI监视器上正确扩展的最佳方法是什么,特别是在Windows 10中?
答案 0 :(得分:11)
Qt最近发布了一篇关于此问题的博客文章here。
从Qt 5.6开始启用高DPI支持。在OS X平台上,存在对High-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();
}