У меня есть этот код, который дает мне эту ошибку:
file:///home/user/qmltests/bindingheight.qml:29:5: QML Pane: Binding loop detected for property "height"
Зачем это создает цикл? И как мне это исправить?
import QtQuick 2.11
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.11
ListView {
width: 300
height: 600
clip: true
model: ListModel {
id: fruitModel
ListElement {
name: "Apple Apple Apple Apple Apple Apple Apple Apple Apple Apple Apple Apple"
cost: 2.45
}
ListElement {
name: "Orange Orange Orange Orange Orange Orange Orange Orange Orange Orange"
cost: 3.25
}
ListElement {
name: "Banana Banana Banana Banana Banana Banana Banana Banana Banana Banana"
cost: 1.95
}
}
delegate: Item {
width: 200
height: childrenRect.height * 1.1
Pane {
height: contentItem.childrenRect.height
anchors.left: parent.left
anchors.right: parent.right
anchors.bottomMargin: 20
padding: 10
background: Rectangle { anchors.fill: parent; color: "gray";}
MouseArea {
anchors.fill: parent
onClicked: {
console.log("Executing action on the item")
}
}
ColumnLayout {
anchors.top: parent.top
anchors.left:parent.left
anchors.right: parent.right
Label {
id: item_to_hide
text: model.name
wrapMode: Label.WordWrap
Layout.maximumWidth: parent.width
}
Label {
text: model.cost
}
Button {
text: " Hide element "
onClicked: {
item_to_hide.visible=false
}
}
Button {
text: " Show element "
onClicked: {
item_to_hide.visible=true
}
}
}
}
}
}
Это с Qt 5.11, тестирование проводилось с помощью qmlscene, просто скопируйте / вставьте и передайте в bin / qmlscene, чтобы воспроизвести ошибку.