gpt4 book ai didi

c++ - QFont 不允许手动设置行距或行距

转载 作者:可可西里 更新时间:2023-11-01 18:38:28 24 4
gpt4 key购买 nike

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

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

我需要使用 QPainter,因为我生成了一个纹理,其中包含要使用 OpenGL 渲染的文本。

正在寻找更多想法供我尝试!

更新

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

已解决

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

最佳答案

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

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

关于c++ - QFont 不允许手动设置行距或行距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com