Qt图形视图、动画、状态机框架汇编.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Qt图形视图、动画、状态机框架汇编

状态机中使用动画 QStateMachine machine; QPushButton * button = new QPushButton(click me); QState *s1 = new QState(); QState *s2 = new QState(); QState *s3 = new QState(); s1-assignProperty(button, geometry, QRect(100,100,200,50)); s2-assignProperty(button, geometry, QRect(300,100,300,100)); s3-assignProperty(button, geometry, QRect(200,200,250,100)); QSignalTransition * t1 = s1-addTransition(button, SIGNAL(clicked()), s2); QSignalTransition * t2 = s2-addTransition(button, SIGNAL(clicked()), s3); QSignalTransition * t3 = s3-addTransition(button, SIGNAL(clicked()), s1); QPropertyAnimation * animation = new QPropertyAnimation(button, geometry); t1-addAnimation(animation); t2-addAnimation(animation); t3-addAnimation(animation); machine.addState(s1); machine.addState(s2); machine.addState(s3); machine.setInitialState(s1); machine.start(); button-show(); 状态分组 状态本身可以分组,一个大的状态内部可以细分子状态。通过状态分组机制,可以实现状态转换的分组(比如可以用一个状态切换将一组状态都转向另一个状态,用来实现,比如退出键) 状态分组(共享切换) QStateMachine machine; QState *s1 = new QState(); QState *s11 = new QState(s1); QState *s12 = new QState(s1); QState *s13 = new QState(s1); s1-setInitialState(s12); machine.addState(s1); QFinalState *s2 = new QFinalState(); s1-addTransition(button, SIGNAL(clicked()), s2); s12-addTransition(button, SIGNAL(clicked()), s13);//优先级更高所以在s12态点击并不结束 machine.addState(s2); machine.setInitialState(s1); machine.start(); QObject::connect(machine, SIGNAL(finished()), qApp, SLOT(quit())); 其它 历史状态——保存或者恢复当前状态 并行状态——避免状态的组合爆炸 检测符合状态结束 无目标切换 事件、切换、守护 使用恢复策略自动恢复属性 以上请参考教材,或英文版:“帮助”——“索引”——“The state machine framework” Qt图形视图框架、动画框架、状态机框架 思考 动画、交互(控制)是由事件来驱动的(比如常见的定时器事件、键盘事件等) 模拟时钟的动画 思考一下,若要以交互、动画地方式展现一个大的场景,里边部件(准确来说应为图形项)很多,会遇到什么问题? 图形视图框架 Graphics View框架的特点 (1)Graphics View框架结构中,系统可以利用Qt绘图系统的反锯齿、OpenGL工具来改善绘图性能。 (2)Graphics View框架支持事件传播,图形项在场景(scene)中可以交互,图形项能够处理键盘事件和鼠标事件等。其中,鼠标事件包括鼠标按下、移动、释放和双击,还可以跟踪鼠标的移动。 (3

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档