我的印象是如果你在你的申请中这么做
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");奇怪的是,只有一个像素差。
100% --> width = 108 pixels
200% --> width = 109 pixels为什么会这样呢?我能让QFontMetrics负责Windows吗?还是我需要使用逻辑/物理DPI推断字体大小必须增加一个因子2?
谢谢
发布于 2017-11-06 20:39:13
要对自定义绘制的项进行适当的缩放,请使用屏幕::物理属性实现缩放系数,以适用于实际绘图:
qreal myScale = pScreen->physicalDotPerInch() / constStandardPerInch;这个问题还需要修改。
https://stackoverflow.com/questions/47144295
复制相似问题