Qt实现等待提示框(图片和movie实现)
2015-09-23 本文已影响1429人
0d339158f1a6
上一篇文章说了怎样用代码实现等待提示框,这篇文章来说一下怎么用切换图片或者播放gif图片来实现。
1、用图片快速切换实现
创建工程。(我在上一篇的基础上做,不再去另外创建了)
添加变量
private:
QTimer *updateTimer; //实现图片切换的间隔时间
QLabel *labelPic; //承载图片的label
int index; //图片索引值
private slots:
void updateLabel(); //槽函数实现更新图片
在构造函数中实现
labelPic = new QLabel; //创建Label
labelPic->setPixmap(QPixmap(":/images/0"));//初始化为第一张图片
index = 0;//初始化索引值
updateTimer = new QTimer(this);//创建定时器
updateTimer->setInterval(50);//设置定时器间隔50ms
connect(updateTimer, SIGNAL(timeout()),this,SLOT(updateLabel()));//连接信号和槽
updateTimer->start();//开启定时器
这当然你得有资源文件,并且在资源文件中添加这些图片。我的图片是在有道词典下面找到的。有了图片之后就是创建资源文件,并把这些图片加进去,我的图片名字没改,所以起了个别名0,1,2......11,正好12张。
loading图片 增加资源图片updateLabel()槽的实现
void myWidget::updateLabel()
{
index++; //自增1
if(index > 11) //更具图片总数
{
index = 0;
}
QPixmap pixmap(":/images/" + QString::number(index, 10));
labelPic->setPixmap(pixmap);//更新图片
}
Ok,结束了。看效果
2、用QMovie实现
创建变量
QLabel *labelMov;//创建承载gif的label
QMovie *movie;//创建movie
构造函数实现
labelMov = new QLabel;
movie = new QMovie(":/images/gif");//和创建图片资源一样
labelMov->setMovie(movie);//承载gif
movie->start();//开启
别忘了上传资源图片,去网上找一个gif的图片,例如这里http://preloaders.net/en/circular。
看我们的运行效果
3、总结
其实这两种方法貌似比代码实现更简单一些,但是也有弊端。就是图片大小限制啊,颜色限制啊等等。不过这都是一些思路,实现起来时很有趣的。加上昨天的,最后来张全家福。
全家福