1

使用 Qt 4.7.0,我们需要一些文本在正常和粗体之间显示。这是我们正在做的事情:

Paint我们的子类的方法中QGraphicsObject,我们有一个QFont我们调用setWeight(58)的方法。我们创建一个QPainterPath并调用它的addText方法,传入我们的QFont.

然后我们使用QPainter参数调用drawPath,传入我们的QPainterPath.

我们发现字体粗细从 50 到 62 的变化对其绘制方式没有影响。字体粗细为 63 到 75 时,字体被绘制为粗体。

我们如何才能让 fontWeight 像我们期望的那样工作?

4

1 回答 1

1

根据文档

将字体的权重设置为 weight,它应该是来自 QFont::Weight 枚举的值。

关于 CSS 字体粗体的W3C 页面很好地解释了 CSS 是如何处理它的;Qt 文档说它正在做类似的事情。基本上,它应用一些启发式方法来尝试将您的权重值映射到适当版本的字体(常规、粗体、粗体等)

可以QPainterPath创建某种字体的比正常字形稍厚的字形(也许勾勒出一个?),但结果几乎肯定会令人失望。字体设计师付出了很多努力来使字体在某些重量下看起来不错。当您偏离这一点时(例如,通过概述每个字形),所有设计优化都将丢失。

于 2011-02-02T22:04:42.513 回答