今天想用qt播放一张GIF动图,就在网上找资料,基本上是以下代码:
#include "widget.h"
#include "ui_widget.h"
#include <QLabel>
#include <QMovie>
#include <QPixmap>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QMovie movie1(":/new/prefix1/image/mm.gif");
ui->label->setMovie(&movie1);
ui->label_2->setMovie(&movie1);
movie1.start();
}
Widget::~Widget()
{
delete ui;
}
但运行起来时,却只看见label标签,没有其他效果,开始以为是我label的问题,所以我删掉了在代码处创建label,在ui里面直接添加,但仍没有效果。
我用仔细检查了文件路径,删掉用重新添加还是没有用,最后在一次尝试中,调试出来了!!!(QMovie 那得new一个出来,不能赋值后直接传地址,要变成指针的形式omz),所以我们遇到问题时,还得多多尝试一下另一种思路啊,最后放上代码和效果图(由于是截图就没有体现出动图效果,用两张截图对比一下以证明)
ui->setupUi(this);
QMovie* movie1 = new QMovie(":/new/prefix1/image/mm.gif");
ui->label->setMovie(movie1);
ui->label_2->setMovie(movie1);
movie1->start();