7

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

奇怪的是,QFont允许更改字体字距,甚至有一些拉伸操作和字母间距,但没有改变行之间的默认间距。我已经搜索并找到了一些部分解决方案,QTextLayout但似乎没有一个可以正常工作。

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

寻找更多想法让我尝试!

更新

我发现我可以QPainter用来绘制一个QStaticText允许 HTML 文本格式的,类似于QTextDocument. 但是,CSS 样式不像QTextDocument(有一个错误报告)那样工作......因此仍然没有领先,但我希望这能让我走上正确的轨道。

解决了

我得到了我想要的东西QTextDocument,就像 Mykhaylo 建议的那样。链接到解决方案

4

2 回答 2

3

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

使用QTextDocument. 您可以使用它打印多行和富文本,甚至使用QPainter. 查看如何将QPainter 与 QTextDocument一起使用的解决方案

于 2015-05-07T08:54:06.747 回答
0

看来这里可以做的不多。

QFontMetrics::lineSpacing返回您需要的内容,但它是只读的。

它是字体高度和前导的总和。您可以调整高度 - 在QFont构造函数中设置它。但是你不能设置领先。

有些人添加\n到字符串的末尾以增加行之间的空间,但当然这并不总是一个好的解决方案。

于 2015-04-28T15:22:37.427 回答