当前位置: 代码迷 >> 综合 >> Qml状态-State
  详细解决方案

Qml状态-State

热度:72   发布时间:2023-12-12 18:11:07.0

Qml中的状态State可以用来驱动界面,针对不同的状态显示不同的界面。

状态相关属性

  • Item控件有一个state属性,字符串类型(默认字符串类型),来设置空间的状态。
  • Item控件还有一个states的属性,保存该控件的所有状态值,类型是list<State>。
  • State的属性
    • name:状态的名称。
    • when:布尔值,该值为true时使用该状态。
    • changes:类型是list<Change>,保存应用状态的所有变化。可以使用PropertyChanges(修改对象的属性)。

程序实例

import QtQuick 2.0Item {anchors.fill: parentRectangle{id:rectwidth: 60height: 60//初始化状态值state: "blueRect"MouseArea{id:mouseanchors.fill: parent}//控件的状态值集合states: [//定义红色状态State {//设置名称name: "redRect"//设置条件when: mouse.pressed//状态对应的变化集合changes:[//属性变化PropertyChanges {target: rectcolor:"red"}]},//定义蓝色状态State {name: "blueRect"when: mouse.releasedchanges:[PropertyChanges {target: rectcolor:"blue"}]}]}
}

PropertyChanges属性

  • target:指定改变的目标控件,然后就可以像在目标控件中一样设置其属性。
  • restoreEntryValues:用来指定离开该状态时是否恢复到进入本状态的值,默认值为true;如果设置为false,则在该状态下的修改时持久的。
  • explicit:修改控件属性的状态,默认是false,即时绑定关系;如果设置为true,则是一次性赋值行为。

 

 

 

  相关解决方案