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