[英]Design user interfaces with automatically scaling fontsizes in Qt
Qt 5.7声称改进了对高DPI的支持。 使用现代的Qt,可以创建一个像以下这样的应用启动器:
#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在表单布局工具中为其分配的大小。
如果要为某个元素使用较大的字体,并在“设计”屏幕上进行设置,似乎没有办法说“两倍大”。 相反,它将注入具有绝对磅值的font属性。
QMessageBox静态方法似乎也是如此。 显示一个静态QMessageBox,例如QMessageBox::info
,其文本和图标未按比例放大以补偿高dpi。
因此,您究竟应该怎么做才能使在Creator中以标准DPI设计的Qt应用程序自动适应高DPI环境,字体,QMessageBoxes等。
我已经设置了应用程序的样式表,以将较大的字体用于QMessageBox。 但感觉很丑,我不确定如何自动触发它。
编辑:
手动设置环境变量
declare -x QT_SCALE_FACTOR=2
确实会引起我正在寻找的那种行为。 但是如何仅在High DPI环境上自动执行此操作,最好在程序本身内部执行。 (我猜setenv (3)
可以在Linux下工作)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.