我的印象是,如果您在应用程序中执行此操作
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication* app = new QApplication(temp, NULL);
然后字体在高分辨率显示器上自动放大。如果您在 Windows 10 中显式增加字体缩放(设置-->系统->自定义缩放),则相同。
但是,在 Windows 10 中以 100% 和 200% 缩放运行以下代码时,它不会返回两倍大小。
QFont font = QFont("arial", 10);
QFontMetrics fm(font);
int width = fm.width("abcdefgABCDEFG");
奇怪的是只有1个像素的差异。
100% --> width = 108 pixels
200% --> width = 109 pixels
这是为什么?我可以让 QFontMetrics 考虑 Windows 缩放吗?还是我需要使用逻辑/物理 DPI 来推断字体大小必须增加 2 倍?
谢谢