0
我的rootModel
擁有名爲checklist
的屬性。 checklist
是QObject,它具有bool
屬性,需要由Checkbox {}
控制。我試圖減少複製和粘貼代碼。下面是我的自定義複選框的MyCheckbox.qml
使用的MyCheckbox.qml
使用Javascript對QObject進行QML綁定訪問QObject屬性
import QtQuick.Controls 1.0
import QtQuick 2.0
Checkbox {
id: myCheckbox
property string property: ""
Binding {
target: myCheckbox
property: "checked"
value: rootModel.checklist[property]
}
checked: rootModel.checklist[property]
onCheckedChanged: rootModel.checklist[property] = checked
}
例子:
import QtQuick 2.0
Item {
Row {
MyCheckbox {
property: "check1" //Access to rootModel.checklist.check1
}
MyCheckbox {
property: "check2" //Access to rootModel.checklist.check2
}
}
}
它得到了Binding{}
以下錯誤:
QQmlExpression: Expression file:///myChecklistCheckbox.qml:14:16 depends on non-NOTIFYable properties:
QQmlBind::property
如何解決這個錯誤,並得到QmlEngine正確綁定屬性。 checklist
有信號的每個屬性,如果做這樣的事情NOTIFY
正常工作:
Binding {
target: myCheckbox
property: "checked"
value: rootModel.checklist.check1
}