Qt实现等待提示框(图片和movie实现)


上一篇文章说了怎样用代码实现等待提示框,这篇文章来说一下怎么用切换图片或者播放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张。

Qt实现等待提示框(图片和movie实现)_第1张图片
loading图片
Qt实现等待提示框(图片和movie实现)_第2张图片
增加资源图片

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。

Qt实现等待提示框(图片和movie实现)_第3张图片
gif资源

看我们的运行效果

movie运行效果

3、总结

其实这两种方法貌似比代码实现更简单一些,但是也有弊端。就是图片大小限制啊,颜色限制啊等等。不过这都是一些思路,实现起来时很有趣的。加上昨天的,最后来张全家福。

Qt实现等待提示框(图片和movie实现)_第4张图片
全家福

你可能感兴趣的:(Qt实现等待提示框(图片和movie实现))