Qt 获取QGraphicsTextItem长度?

Qt 获取QGraphicsTextItem长度?,qt,text,qgraphicstextitem,Qt,Text,Qgraphicstextitem,当TextWidth=-1?时,是否仍有计算文本长度的方法 我有一个矩形,其中有一个QGraphicsTextItem,我想在字符超过该矩形时更改该矩形的宽度。textWidth=-1表示 [……]这篇文章不会被分成几个部分 多行,除非强制执行 通过显式换行符或 新段落 因此,如果您想获得QGraphicsTextItem的长度,您不能使用textWidth,而是需要此QGraphicsTextItem中字符串的实际长度。看一看,它返回一个QString。调用该字符串的大小 int lengt

当TextWidth=-1?时,是否仍有计算文本长度的方法


我有一个矩形,其中有一个QGraphicsTextItem,我想在字符超过该矩形时更改该矩形的宽度。

textWidth=-1表示

[……]这篇文章不会被分成几个部分 多行,除非强制执行 通过显式换行符或 新段落

因此,如果您想获得QGraphicsTextItem的长度,您不能使用textWidth,而是需要此QGraphicsTextItem中字符串的实际长度。看一看,它返回一个QString。调用该字符串的大小

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

现在,这个字符串中的字符数已经确定,并且可以实现一个调整大小功能,以便在字符太多时使矩形变大。这是一种变通方法,但我希望它能帮助解决您的问题。

textWidth=-1表示

[……]这篇文章不会被分成几个部分 多行,除非强制执行 通过显式换行符或 新段落

因此,如果您想获得QGraphicsTextItem的长度,您不能使用textWidth,而是需要此QGraphicsTextItem中字符串的实际长度。看一看,它返回一个QString。调用该字符串的大小

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

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

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

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

我是在同一个问题上停下来的

我正在使用text->boundingRect.width获取宽度


也许它对任何人都有帮助

我发现了这篇文章,因为我停下来讨论了同样的问题

我正在使用text->boundingRect.width获取宽度


也许它对任何人都有帮助

So-1作为默认值返回?So-1作为默认值返回?我还发现:qreal w=text.document->size.width;>看看QGraphicsTextItem::toPlainText,它返回一个>QString。调用该字符串的大小。不幸的是,只有当您使用固定宽度的字体时,如Courier,这才有效。相反,使用item->boundingRect.width我还发现:qreal w=text.document->size.width;>看看QGraphicsTextItem::toPlainText,它返回一个>QString。调用该字符串的大小。不幸的是,只有当您使用固定宽度的字体时,如Courier,这才有效。取而代之的是,使用item->boundingRect.width从我读过的所有资料来看,QFontMetrics多年来一直被错误地排除在可用性之外。似乎看不到修复方法。@optikradio:Hm,我一直在使用QFontMetrics,只注意到一个小小的麻烦,那就是由于内部舍入,在调用某个边界框函数时出现了抖动。所以我觉得这门课没问题。你应该说出你的信息来源,我很感兴趣。从我读到的所有信息来源来看,QFontMetrics已经在可用性之外被窃听了很多年了。似乎看不到修复方法。@optikradio:Hm,我一直在使用QFontMetrics,只注意到一个小小的麻烦,那就是由于内部舍入,在调用某个边界框函数时出现了抖动。所以我觉得这门课没问题。你应该说出你的消息来源,我很感兴趣。