qpainterpath.addtext忽略qfont权重

时间:2010-11-23 19:57:59

标签: fonts qt4 qpainter

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

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

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

我们发现,字体重量从50到62的变化对它的绘制方式没有影响。字体重量为63到75,字体颜色为粗体。

我们如何让fontWeight按预期工作?

1 个答案:

答案 0 :(得分:1)

the documentation

  

将字体的重量设置为重量,   这应该是一个值   QFont ::重量枚举。

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

有可能(可能概述一个QPainterPath?)创建某种字体略微厚于正常的字形,但结果几乎肯定会令人失望。字体设计师花了很多精力使字体在某些重量下看起来很好。当您离开时(例如,通过概述每个字形),所有设计优化都将丢失。