我一直在尝试找到一种方法,使用QFontQFontMetrics或类似的方法来更改字体文件的行距默认值。我正在使用QPainter::drawText在边界矩形中绘制一些文本。

奇怪的是,QFont允许更改字距调整,甚至具有一些拉伸(stretch)操作和字母间距,但没有任何改变行之间的默认间隔的操作。我搜索并找到了一些使用QTextLayout的局部解决方案,但似乎都无法正常工作。

我需要使用QPainter,因为我生成了带有要用OpenGL渲染的文本的纹理。

寻找更多想法供我尝试!

更新

我发现我可以使用QPainter绘制一个QStaticText,它允许HTML文本格式设置,类似于QTextDocument。但是,CSS样式不能像QTextDocument(有一个bug report)那样工作...因此,仍然没有领先地位,但我希望这能使我走上正确的道路。

解决了

我使用QTextDocument得到了想要的东西,就像Mykhaylo建议的那样。 Link to solution

最佳答案

QFontMetrics不是专门为多行文本设计的。

使用QTextDocument。您甚至可以使用QPainter来打印多行和富文本。查看解决方案如何use QPainter with QTextDocument

10-07 12:39