使用Qt 4.7.0,我们需要一些文本来显示介于普通和粗体之间的部分内容。下面是我们正在做的事情:
在我们的QGraphicsObject子类的Paint方法中,我们有一个调用setWeight(58)的QFont。我们创建一个QPainterPath并调用它的addText方法,传入我们的QFont。
然后,我们使用QPainter参数调用drawPath,传入我们的QPainterPath。
我们发现,将fontweight从50更改为62,对绘制方式没有任何影响。字体宽度为63到75,字体显示为粗体。
我们怎样才能让fontWeight像我们期望的那样工作呢?
发布于 2011-02-03 06:04:43
每个the documentation
将字体的粗细设置为weight,它应该是QFont::Weight枚举中的值。
W3C page on CSS font boldness很好地解释了CSS是如何处理它的;Qt文档说它也在做类似的事情。基本上,它会应用一些启发式方法来尝试将您的权重值映射到适当版本的字体(常规、粗体、粗体等)。
这可能是可能的(也许勾勒出一个QPainterPath?)创建比正常字体稍粗的字形,但结果几乎肯定会令人失望。字体设计者花了很多精力来使字体在特定的粗细下看起来很好。当你离开这一点(例如,勾勒出每个字形)时,所有的设计优化都会丢失。
https://stackoverflow.com/questions/4260293
复制相似问题