1

反正有什么时候计算文本的长度TextWidth = -1吗?

我有一个包含 a 的矩形,QGraphicsTextItem我想在字符超出矩形时更改矩形的宽度。

4

3 回答 3

8

我通过停止同样的问题找到了这篇文章。

text->boundingRect().width()用来获取宽度。

也许它可以帮助任何人

于 2014-12-15T12:28:14.400 回答
0

textWidth = -1 表示,即

“[...]除非通过明确的换行符或新段落强制执行,否则文本不会分成多行。”

( QTextDocument::textWidth() )

所以,如果你想得到QGraphicsTextItem你不能使用的长度textWidth,而是你需要 this 中的 String 的实际长度QGraphicsTextItem。看看QGraphicsTextItem::toPlainText(),它返回一个 QString。调用size()那个字符串。

int length = my_graphics_text_item.toPlainText().size() 

现在你有了这个字符串中的字符数,并且可以在字符太多时实现一个调整大小的函数来使你的矩形变大。这是一种解决方法,但我希望它有助于解决您的问题。

于 2011-02-01T08:42:31.530 回答
0

您还可以创建一个 QFontMetrics([您的 QGraphicsTextItem 的字体]) 实例并调用它的 width(QString) 函数来获取传递的字符串的宽度(以像素为单位),它是否以指定的 fontfamily/-size/-weight 绘制。仅在使用等宽字体时才获得字符数是合理的。在所有其他情况下,这不是一个好主意。

于 2011-06-24T22:59:16.590 回答