qt 利用多张图片做成动画实例

#include "m_widget.h"m_widget::m_widget(QWidget *parent) : QWidget(parent){ m_cruuentIndex = 0; m_png = ":/Images/soft_anim.png"; QPixmap pix(m_png); m_num = 17; for(int i=0; i != m_num; i++) { m_pixmaplist.append(pix.copy(i*(pix.width()/m_num), 0, pix.width()/m_num, pix.height())); } m_currentPix = m_pixmaplist.at(0); this->setFixedSize(m_currentPix.size()); update(); m_clockTimer = new QTimer(this); m_clockTimer->setInterval(80); connect(m_clockTimer, SIGNAL(timeout()), this, SLOT(my_update())); m_clockTimer->start();}void m_widget::my_update(){ if(m_cruuentIndex != m_num) { m_currentPix = m_pixmaplist.at(m_cruuentIndex); update(); if(m_cruuentIndex == (m_num - 1)) { m_clockTimer->stop(); m_cruuentIndex = 0; } m_cruuentIndex++; }}void m_widget::enterEvent(QEvent *){ m_clockTimer->start();}void m_widget::paintEvent(QPaintEvent *){ QPainter painter(this); painter.drawPixmap(rect(), m_currentPix);}上面的代码既是把包含多张图片的一张图片制作成一个动画的实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值