学习笔记(2):Qt状态机初识

 今天学习的内容是状态机入门,首先简单介绍一下。

作用:提供一种维护复杂应用程序状态的方法。  关键字复杂应用程序说明在简单的对话框应用程序中占不到便宜。

依赖: QObject和Qt的属性系统。

组成:状态机(QStateMachine) 、状态(QState) 、切换(transition)。

以我的理解最简单的状态机这样描述: 一个状态机(QStateMachine)里包含了多种状态(QState),我们通过切换(transition)来从一个状态到另一个状态。

例:

   QStateMachine* machine = new QStateMachine; //状态机

    QState* state1 = new QState(machine); //状态1
    QState* state2 = new QState(machine); //状态2

    //状态1对应的三元状态组(某个对象的某种属性的值)
    state1->assignProperty(ui->radioButton,"pos",QPoint(0,0));  
    state1->assignProperty(ui->radioButton,"checked",false);
    
    //状态2对应的三元状态组
    state2->assignProperty(ui->radioButton,"pos",QPoint(100,100));
    state2->assignProperty(ui->radioButton,"checked",true);
    
    //添加切换(切换的方式不止这一种)
    state1->addTransition(ui->pushButton,SIGNAL(clicked()),state2);
    state2->addTransition(ui->pushButton,SIGNAL(clicked()),state1);

    machine->setInitialState(state1); //设置初始态(必须设置初始态,不然它拒绝开始)
    machine->start();//启动状态机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fearlazy

打赏是不可能的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值