使用Qt设计一个让一些图片按照自定义秒数进行播放,形成动画形式。整体思路:首先需要定义一个函数将图片的资源文件放入其中,其次设置一个定时器,最后将二者关联起来,以达到随着秒数的增加图片变化的效果。
将资源文件放入函数InitPixmap中;
void Dialog::InitPixmap()
{
for(int i=0;i<8;i++)
{
QString fileName=QString("://1_%1.png").arg(i+1,2,10,QLatin1Char('0'));// **"://1_%1.png"指代图片的资源路径;arg中的参数分别表示变量的值,位数,进制,位数不够时的填充**
QPixmap map(fileName);
pixmap[i]=map;
}
}
定时器的函数
void Dialog::timerEvent(QTimerEvent* event)
{
static int i=0;
i++;
curIndex++;
if(curIndex>=8)//**当八张图片遍历一遍后赋值为零,继续从头遍历**
curIndex=0;
repaint();
}
关联函数
void Dialog::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
for(int i=0;i<8;i++){
QRect q(0,0,80,91);
QRect q2(160*i,100,2*80,2*91);
painter.drawPixmap(q2,pixmap[curIndex+8*i],q);
}
}
最后效果图: