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