qml 中每个item 都有一个state,个人理解在item中设定的属性值即为默认state,如果在程序运行中需要更改这些属性的时候就可以通过
调用定义的states 中的某个state.
这样原比widghts中一个个设定属性来得快,代码管理也轻松很多。
例:
import QtQuick 1.0
Rectangle {
id: myRect
width: 100; height: 100
color: "black"
MouseArea {
id: mouseArea
anchors.fill: parent
onClicked: myRect.state == 'clicked' ? myRect.state = "" : myRect.state = 'clicked';
}
states: [
State {
name: "clicked"
PropertyChanges { target: myRect; color: "red" }
}
]
}
这里可以知道 默认属性的引用 是 “” 字符串。
多个state在同一时间生效得话只会执行第一个。