【发布时间】:2017-04-30 16:04:05
【问题描述】:
我正在尝试与the tutorial 类似的代码,但我在列表视图委托上得到“QML 矩形:检测到属性“宽度”的绑定循环”。这只发生在单词大于listView.width 并且发生文本换行的消息上。这一直在发生。我该如何解决?
delegeate: Rectangle {
id: delegateFrame
width: Math.min(messageText.implicitWidth , listView.width)
height: messageText.implicitHeight
Label {
id: messageText
anchors.fill: parent
text: model.text
wrapMode: Label.Wrap
}
}
我使用的是 Qt 5.8。
编辑
按照 Felix 在他的回答中的建议进行了更改,但它仅将警告中的“宽度”一词更改为“implicitWidth”。
delegeate: Rectangle {
id: delegateFrame
implicitWidth: Math.min(messageText.implicitWidth , listView.width)
implicitHeight: messageText.implicitHeight
Label {
id: messageText
width: parent.width
text: model.text
wrapMode: Label.Wrap
}
}
【问题讨论】:
-
你如何定义
ListView.width? -
当你声明时,警告发生,当单词长于
ListView的宽度时,你的delegateFrame.implicitWidth绑定到listView.width,所以它应该与messageText.implicitWidth。 => 使用您显示的 sn-p,我们无法解决问题。
标签: c++ qt data-binding qml