Qt 显示动态gif图片有以下几种方法:
方法一:利用QMovie 显示
QMovie *movie = new QMovie(":/GifPic/wait.gif");
ui->m_pgifLabel->setMovie(movie);
movie->start();
方法二:利用drawPixmap及定时器实现,每隔一定的时间,刷新一次
代码:
Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); setWindowIcon(QIcon(":/GifPic/wait.gif")); movie = new QMovie(":/GifPic/wait.gif"); //ui->m_pgifLabel->setMovie(movie); movie->start(); // 更新间隔 startTimer(20); } Dialog::~Dialog() { delete ui; } void Dialog::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.drawPixmap(0,0,width(),height(), movie->currentPixmap()); } void Dialog::timerEvent(QTimerEvent *event) { update(); }
其中":/GifPic/wait.gif"为资源文件。