反正有什么时候计算文本的长度TextWidth = -1
吗?
我有一个包含 a 的矩形,QGraphicsTextItem
我想在字符超出矩形时更改矩形的宽度。
反正有什么时候计算文本的长度TextWidth = -1
吗?
我有一个包含 a 的矩形,QGraphicsTextItem
我想在字符超出矩形时更改矩形的宽度。
我通过停止同样的问题找到了这篇文章。
我text->boundingRect().width()
用来获取宽度。
也许它可以帮助任何人
textWidth = -1 表示,即
“[...]除非通过明确的换行符或新段落强制执行,否则文本不会分成多行。”
( QTextDocument::textWidth() )
所以,如果你想得到QGraphicsTextItem
你不能使用的长度textWidth
,而是你需要 this 中的 String 的实际长度QGraphicsTextItem
。看看QGraphicsTextItem::toPlainText(),它返回一个 QString。调用size()
那个字符串。
int length = my_graphics_text_item.toPlainText().size()
现在你有了这个字符串中的字符数,并且可以在字符太多时实现一个调整大小的函数来使你的矩形变大。这是一种解决方法,但我希望它有助于解决您的问题。
您还可以创建一个 QFontMetrics([您的 QGraphicsTextItem 的字体]) 实例并调用它的 width(QString) 函数来获取传递的字符串的宽度(以像素为单位),它是否以指定的 fontfamily/-size/-weight 绘制。仅在使用等宽字体时才获得字符数是合理的。在所有其他情况下,这不是一个好主意。