所以我有一个内部带有标签文本的矩形。如果文本太长而无法放入一行,我想增加矩形的大小,否则应该保持不变。根据是否包装文字来调整矩形大小QML
到目前为止,我尝试使用lineCount,剪辑,截断特性从 qt的docs -
的文本不适合,我也得到椭圆。但是,剪辑和截断总是返回false。线数只是返回当前的线数,忽略它应该占用更多空间。
现在我试图从here使用contentWidth
。但是,这总是返回一个等于或小于实际宽度的值。我认为这应该返回它应该占据的总价值?
我该如何做到这一点?
编辑
我想这样的事情,但是不管我的文字是多久或多截断它是内容的宽度总是比标签的宽度。我从qml文档中得到了contentWidth即使忽略文本也会考虑到的印象。
Rectangle{
id: rec
...
Label{
id: messageText
height: Format.singleLine
text: "this text is very long and should be two lines"
Component.onCompleted: {
if (contentWidth > width){
rec.height = Format.multipleLines
}
}
}
}
第二个编辑
我才知道,为什么lineCount总是一个原因是由于编程创建对象(myRectangle是包含标签的矩形):
messages.source = Qt.resolvedUrl("myRectangle.qml");
messages.item.message = message;
后标签创建的第一行label使用lineCount 1。然后我会尝试更改仅在此点之后被截断的文本。
显示您的代码请 – eyllanesc
我只是想能够这样做: 宽度:(contentWidth>宽度)? Format.multipleLines:Format.singleLine; –
我认为你已经有足够的声望知道你必须提供[最小,完整和可验证的示例](https://stackoverflow.com/help/mcve)。除此之外,你应该知道如何[编辑](https://stackoverflow.com/posts/45425718/edit)你的问题。 – eyllanesc