关于qt显示gif图片的方法

gif图片可以分为静态图片和动态图片,但无论是那种图片都可以通过以下两种方式显示(前提是./configure时有指定-gif):

1利用QMovie+QLabel,代码如下:

movie = new QMovie("./images/bkg.gif");//这个资源不用写到source.qrc中,只要路径对了就行,还有就是movie最好是new的

不然如果是写到一个方法里面的话movie可以被销毁从而导致gif无法显示

label->setMovie(movie);

qDebug()<<"..rrrr.."<<movie->isValid();//测试是否加在成功

movie->start();

2.利用drawPixmap 画。(动态的图片只能显示第一桢,而且因该重写paintEvent)代码如下:

void CourseInfoPage::paintEvent(QPaintEvent* event)

{

 

QPixmap pic(":/images/bkg.gif");//这个要到资源文件source.qrc里面,其他的没有试过能成功不

QPainter painter(this);

painter.drawPixmap(m_ui->frame_picture->x(),m_ui->frame_picture->y(),m_ui->frame_picture->width(),m_ui->frame_picture->height(),pic);

 

好了,就这样吧,反正显示gif图片是没有什么问题了.网上说的QMovie只能显示动态图片是错误的,都可以显示.

 

你可能感兴趣的:(测试,qt)