Windows编程在状态机中使用图画

本文介绍如何在Qt中将状态机API与动画API相结合,通过信号转换实现不同状态间的平滑过渡。当状态切换时,可以利用属性动画实现美观的视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  如果将状态机API和Qt中的动画API相关联,那么就可以使分配到状态上的属性实现动画效果。在前面的程序中先添加文件:
#include <QSignalTransition>
#include <QPropertyAnimation>
  然后将进行状态切换的代码更改如下:
QSignalTransition *transition1 = s1->addTransition(&button,
                                                       &QPushButton::clicked, s2);
    QSignalTransition *transition2 = s2->addTransition(&button,
                                                       &QPushButton::clicked, s3);
    QSignalTransition *transition3 = s3->addTransition(&button,
                                                       &QPushButton::clicked, s1);
    QPropertyAnimation *animation = new QPropertyAnimation(&button, "geometry");
    transition1->addAnimation(animation);
    transition2->addAnimation(animation);
    transition3->addAnimation(animation);
  这样就可以在状态切换时使用动画效果了。在属性上添加动画,就意味着进入一个状态时分配的属性将无法生效,而是在进入时开始播放动画,然后以平滑的动画来达到属性分配的值。这里无需为动画设置开始和结束的,他们会被隐含的进行设置,开始值就是开始播放动画时属性的当前值,结束值就是状态分配的属性的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值