Qt 5.7声称已经提高了高DPI支持率。使用现代Qt,可以创建一个app启动器,如:
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
return app.exec();
}
我希望UI能够在高DPI下运行时自动缩放,但缩放并不一定按预期工作。至少它没有在Linux下为我扩展UI。我所看到的是布局扩大了,但字体保持原样,Qt Creator在表单布局工具中分配它们的大小。
如果你想要一个更大尺寸的字体用于某个元素,并且你在表单设计屏幕中设置它,似乎没有办法说&#34;两倍大&#34;。相反,它会注入一个绝对磅值的字体属性。
QMessageBox静态方法似乎也是一样的。显示静态QMessageBox,如QMessageBox::info
,其文本和图标不会按比例放大以补偿高dpi。
所以你应该做些什么才能让你的Qt应用程序(在Creator中以标准DPI设计)自动适应高DPI环境,字体,QMessageBox等等。
我已经有一些牵引力设置应用程序的样式表为QMessageBox使用更大的字体。但感觉很难看,而且我不确定如何自动触发它。
编辑:
手动设置环境变量
declare -x QT_SCALE_FACTOR=2
似乎调用了我正在寻找的那种行为。但是如何仅在高DPI环境下自动执行,最好是在程序本身内部。 (setenv (3)
可以在Linux下工作,我猜)
答案 0 :(得分:1)