首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QFontMetrics可以用于windows缩放吗?

QFontMetrics可以用于windows缩放吗?
EN

Stack Overflow用户
提问于 2017-11-06 19:25:40
回答 1查看 1.6K关注 0票数 0

我的印象是如果你在你的申请中这么做

代码语言:javascript
复制
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication* app = new QApplication(temp, NULL);

然后字体在高分辨率显示器上自动放大。如果在Windows 10中显式增加字体缩放(设置->系统->自定义缩放),则相同。

但是,在Windows 10中运行以下代码( 100%和200%缩放)时,它不会返回加倍大小。

代码语言:javascript
复制
QFont font = QFont("arial", 10);
QFontMetrics fm(font);
int width = fm.width("abcdefgABCDEFG");

奇怪的是,只有一个像素差。

代码语言:javascript
复制
100% --> width = 108 pixels
200% --> width = 109 pixels

为什么会这样呢?我能让QFontMetrics负责Windows吗?还是我需要使用逻辑/物理DPI推断字体大小必须增加一个因子2?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-06 20:39:13

要对自定义绘制的项进行适当的缩放,请使用屏幕::物理属性实现缩放系数,以适用于实际绘图:

代码语言:javascript
复制
qreal myScale = pScreen->physicalDotPerInch() / constStandardPerInch;

这个问题还需要修改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47144295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档