当前位置: 代码迷 >> 综合 >> 27.Qt Quick QML-State、Transition
  详细解决方案

27.Qt Quick QML-State、Transition

热度:42   发布时间:2023-12-03 05:35:17.0

1.State

所有组件均具有默认状态,该状态定义对象和属性值的默认配置。可以通过向States属性添加State组件来定义新状态,以允许组件在不同配置之间切换.许多用户界面设计都是由State状态实现的,比如: 交通信号将根据其State配置来实现红黄绿灯交错亮灭.在QML中,状态是在State对象中定义的一组属性配置。例如,下面几种用State状态最为方便:

  • 只显示某些UI组件,隐藏其他组件
  • 向用户展示不同的可用操作
  • 启动、停止或暂停动画
  • 更改特定Item的属性值
  • 显示不同的视图或screen

所有基于Item的对象都有一个states属性和state属性:

  • states属性 : list<State>类型,用来保存多个不同State对象的列表.
  • state属性 : string类型,用来保存对象当前State对象的名称(表示当前状态是什么样子的),默认是一个空字符串,如果要改变Item对象当前状态,则将state属性设置为要改变的状态name名称即可.

对于非Item对象可以通过StateGroup组件配合来使用State即可

1.1 State对象属性

  • name : string,状态名称。,每个状态在都应具有唯一的名称
  • changes : list<Change>,保存当前State下的多个Change对象,比如PropertyChanges、StateChangeScript、ParentChange等
  • extend : string,扩展,表示该状态要在哪个State的基础上进行扩展,当一个状态要在另一个状态基础上进行扩展时,它将继承该另一个状态的所有chan
  相关解决方案