一个qmovie显示gif动画的问题
老栗子 2019-09-19 05:45:49 我写了一个qmovie显示gif动画的程序,有几个地方有点不解,请高手解答。不解1:当gif动画运行了一遍之后frameCount才能返回帧数,否则返回0; 2:为什么调用jumpToFrame总是返回false。程序如下://///////////////VxGifWidget .h#include <QLabel>#include <QMovie>#include <QPainter>class CVxGifWidget : public QLabel{public: CVxGifWidget(const char *path = 0,QWidget *parent = 0);private: void enterEvent ( QEvent * event ); void leaveEvent ( QEvent * event ); private: QMovie *m_pMovie; int m_count; bool m_bTrue;};/////////////////VxGifWidget .cppCVxGifWidget::CVxGifWidget(const char *path,QWidget *parent) :QLabel(parent){ QPixmap m_pixmap(path); setMinimumSize(m_pixmap.width(),m_pixmap.height()); setAlignment(Qt::AlignCenter); m_pMovie = new QMovie(path); setMovie(m_pMovie); m_pMovie->start();}void CVxGifWidget::enterEvent ( QEvent * event ){ m_count = m_pMovie->frameCount(); bool b = m_pMovie->jumpToFrame(10); m_pMovie->setPaused(true);}void CVxGifWidget::leaveEvent ( QEvent * event ){ m_pMovie->setPaused(false);}/////////////////main.cpp#include <QApplication>#include "VxGifWidget.h"int main(int argc, char *argv[]){ QApplication app(argc,argv); QApplication::addLibraryPath("./plugins"); CVxGifWidget *m_gifShow = new CVxGifWidget("test.gif"); m_gifShow->show(); return app.exec();}