【发布时间】:2016-06-07 06:19:08
【问题描述】:
我想实现一个 QGraphicsElement,它在圆角矩形内“按原样”绘制文本。
为了实现QGraphicsElement我需要实现boundedRect函数,所以我需要多行消息的boundedRect。
据我了解,这是我需要使用http://doc.qt.io/qt-4.8/qfontmetrics.html#boundingRect-6 的函数,因为它说它将换行符视为换行符。
现在我的问题是,如果我想知道的信息是文本的boundedRect,那我为什么需要将boundedRect作为参数传递呢?
谁能给我一个如何获取多行 QString 的 boundedRect 的示例?还是我需要手动计算换行符并将其乘以单行高度?
编辑:
正如 arhzu 所示,作为参数传递的 QRect 用于定义多行文本的包含方式。但是,这没有用。因为我希望所述边界框的宽度不使用自动换行。这应该只是最长字符串的宽度。所以,我再次问有没有办法得到这个?或者我应该用换行符分割字符串,然后简单地添加高度并使用找到的最大宽度?
【问题讨论】:
-
当不使用自动换行标志时,不使用布局约束,返回的边界矩形应该是输入文本的“原样”边界。我也更新了答案以打印出未包装的案例。
标签: qt