Qt开发杂记(三)

本文介绍了Qt中的QCanvas及其相关方法,如QCanvas::advance()和QCanvas::update()的使用,以及QCanvasItem的移动、碰撞检测和动画功能。QCanvasItem是抽象图形对象,可以通过继承QCanvasPolygonalItem或QCanvasRectangle等实现自定义图形。QCanvasView作为显示QCanvas的组件,允许用户交互并处理视图中的鼠标事件。
摘要由CSDN通过智能技术生成

QCanvas的QCanvas::advance()与QCanvas::setAdvancePeriod(int ms)[virtual]配合使用,即设置canvas每隔ms毫秒调用一次advance(),可以通过调用setAdvancePeriod(int ms)或setUpdatePeriod()来进行预先设置。

QCanvas的QCanvas::update()与QCanvas::setUpdatePeriod(int ms)[virtual]配合使用,即设置canvas每隔ms毫秒调用一次update(),可以通过调用setAdvancePeriod(int ms)或setUpdatePeriod()来进行预先设置。

void QCanvas::update()[virtual slot]刷新canvas所有视图的所有更改。

void QCanvas::advance()[virtual slot] 提升一次在canvas所有项的动作,并且刷新canvas所有视图的所有更改。
advance分两个阶段(或两种状态进行),在0阶段,每个动画项以参数0的形式来调用QCanvasItem::advance()这个函数,在1阶段,以参数1的形式再调用一次这个函数。在0阶段,这些项将不会改变位置,仅仅检测其它在canvas的QCanvasItem是否有特殊的处理请求,比如说项目之间的碰撞。在1阶段,canvas的所有项将会改变位置,忽略在canvas上的任何其它项。两步平等调用,如果没有QCanvasItem子类提供,那么Qt在0阶段也不会做任何事。


QCanvasItem是一个在QCanvas上的抽象图形对象。
一个QCanvasItem对象能够通过诸如move(),moveBy(),setY()等一些函数移动变换x(),y()及z()各维的值,来达到移动到某一点的目的。它通过boundingRect()来得到大小。运用setAnimated()及setVel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值