gpt4 book ai didi

qt - 根据 QML 文本是否换行调整矩形大小

转载 作者:行者123 更新时间:2023-12-05 07:41:19 37 4
gpt4 key购买 nike

所以我有一个矩形,里面有标签文本。如果文本太长无法放在一行中,我想增加矩形的大小,否则应该保持不变。

到目前为止,我尝试使用 lineCount、clip、truncated 属性 qt docs -

文本不合适,我得到了省略号。但是,Clip 和 Truncated 始终返回 false。行数只返回当前行数,忽略它是否应该占用更多空间。

现在我正在尝试使用 here 中的 contentWidth .然而,这总是返回一个等于或小于实际宽度的值。我以为这应该返回它应该占据的总值(value)?

我怎样才能做到这一点?

编辑

我正在尝试这样的操作,但无论我的文本有多长或被截断多少,内容宽度始终小于标签的宽度。我从 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 始终为 1 的原因是由于以编程方式创建对象(myRectangle 是包含标签的矩形):

    messages.source = Qt.resolvedUrl("myRectangle.qml");
messages.item.message = message;

在创建标签的第一行之后,标签被插入了 lineCount 1。然后我将尝试更改文本,该文本只会在此时被截断。

最佳答案

这样的事情怎么样:

height: lineCount > 1 ? Format.multipleLines : Format.singleLine

关于qt - 根据 QML 文本是否换行调整矩形大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45425718/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com