3
我有一个MouseArea,调用一个信号, 我把这个信号插入一个插槽,它的工作,我的C++代码正在运行。QT QML改变状态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” 里面,可能吗 ?
感谢
问题:我想你做'发射stateChanged( “loginOK”);'后'对象 - >的setProperty( “状态”,“loginOK”);'。您没有提及如何将信号绑定到QML插槽。你能否提供这些信息?我使用'Connections {...}'将C++信号连接到QML插槽,但在这种情况下,这不会触发UI中的更改(因为在我的情况下,基于新状态项目会发生变化(例如'color ''Rectangle'项目),只有在使用'Connections {...}'时才会触发该插槽,否则没有任何反应,任何想法? – rbaleksandar 2016-08-17 11:33:54
Nevermind。我设法修复它。确实在最新的Qt中,必须使用'Connections'项,但是当从C++调用时,列表中所有可见项的状态都会发生变化,为了防止必须指定只有'currentItem.state'需要设置为新状态。 – rbaleksandar 2016-08-17 11:48:14