Я делаю проект, в основном я хочу синхронизировать свойство theProperty
между 2 блоками в 2 файлах QML (у 2 блоков есть это свойство), я связываю theProperty
с C ++ Q_PROPERTY, поэтому связывая 2 блока с одним и тем же C ++ Q_PROPERTY, можно добиться синхронизации.
Вот мои коды в ячейках A и B. theProperty
могут быть независимо изменены в ячейках A и B
Box_A {
id: box_A
// sth
Binding { target:box_A; property: "theProperty"; value:model.CppModel.theProperty }
onThePropertyChanged: {
model.CppModel.theProperty = theProperty
}
}
Box_B {
id: box_B
// sth
Binding { target:box_B; property: "theProperty"; value:model.CppModel.theProperty }
onThePropertyChanged: {
model.CppModel.theProperty = theProperty
}
}
В кпп:
Class Item: QObject{
Q_OBJECT
Q_PROPERTY(bool theProperty READ theProperty WRITE theProperty NOTIFY theProperty Changed)
//sth
}
Внутри Box_A и B есть область мыши, с помощью которой можно изменить theProperty
:
MouseArea{
onClicked: theProperty=!theProperty
}
Проблема в том, что после того, как я изменил theProperty
в любом из полей A или B, создатель qt жалуется на обнаружение привязки цикла для значения: model.CppModel.theProperty
на другой стороне, есть ли способ обойти эту проблему?