我有一个MouseArea,它调用一个信号,我将这个信号连接到一个插槽中,它能正常工作,我的C++代码也在运行。
但是,在C++代码中是否有可能更改QML状态?
调用信号的按钮代码(OK):
MouseArea {
anchors.fill: parent
onClicked: {
inscriptionCarre.qmlSignalButtonInscription("Button");
}
}
我的状态代码:
states: [
State {
name: "start";
PropertyChanges { target: home; x: -master.width; }
PropertyChanges { target: login; x:0; }
},
State {
name: "loginOK";
PropertyChanges { target: login; x: -master.width; }
PropertyChanges { target: liste; x:0; }
}
]
我希望在我的插槽(C++ 代码)中将状态更改为“loginOK”,这可行吗?
谢谢。
object->setProperty("state", "loginOK");
之后,您会执行emit stateChanged("loginOK");
。您没有提及如何将信号绑定到QML插槽。请提供相关信息。我使用Connections { ... }
将C++信号连接到QML插槽,但在这种情况下,这不会触发UI中的更改(因为在我的情况下,基于新状态,项目会更改(例如Rectangle
项目的color
)。只有使用Connections { ... }
时才会触发插槽。否则什么都不会发生。有什么想法吗? - rbaleksandar