Qml状态-State

110 篇文章 5 订阅

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

状态相关属性

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

程序实例

import QtQuick 2.0

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

PropertyChanges属性

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值