直接上代码
头文件
#include <QMovie>
#include <QPushButton>
#include <QVBoxLayout>
#include <QLabel>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
QMovie *movie;
QLabel *label;
bool isPlaying;
QPushButton *button;
private slots:
void playGif();
};
源文件
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
isPlaying = false;
movie = new QMovie("Qt.gif");
label = new QLabel(this);
button = new QPushButton(this);
button->setText("播放");
connect(button,SIGNAL(clicked(bool)),this,SLOT(playGif()));
QVBoxLayout *hLayout = new QVBoxLayout(this);
hLayout->addWidget(button);
hLayout->addWidget(label);
setLayout(hLayout);
}
Widget::~Widget()
{
delete ui;
}
void Widget::playGif()
{
if(isPlaying){
movie->stop();
label->clear(); //stop的时候把label清空
isPlaying = false;
button->setText("播放");
}else{
label->setMovie(movie); //为label设置movie
movie->start(); //开始显示
isPlaying = true;
button->setText("停止");
}
}