Qt 实现桌面雪花飘落 - 修改3(终结)

这次修改是经过一些实验后, 得出最后相对比较好的实现雪花飘落的方案.

之前说过使用每朵雪花都用自己的timer更新背景实现动画和使用QGraphicsView等实现动画. 我也做了一些尝试, 最终还是以CPU爆表告终.

QGraphicsView的实验例子: http://blog.csdn.net/vince025/article/details/17710965

还有就是用Animation相关的类实现. 但是研究了一下. Animation比较适合做一次性连贯动画, 例如场景过度之类的. 鉴于雪花飘落过程是随机控制的,  个人认为不适合使用Animation来做.

因此, 最终的方案就是使用多个QLabel来存放要连续显示的图片, 然后按顺序一个一个地show出来, (show出来后记得hide掉上一次show的图片).

还有一个问题, 比如使用100个雪花飘落, 每个雪花都要更新自己的图片组, 使用雪花本身的timer来更新, 还是使用一个全局timer, 在timerEvent里循环100次更新所有雪花呢?

如果每个雪花都个体更新, 就只能独立使用timer了. 在雪花飘落的这个应用中, 可以使用全局timer来一次更新整个场景.  使用一个全局timer比一个雪花使用一个timer消耗的CPU要小, 这是很明显的了, 哈哈~


第三次修改(最终)采用了原来的Label显示的方法,完整代码在

https://github.com/vince025/DesktopSnowFalling.git

branch 2.0




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值