QT 顯示動態gif圖片


在ui界面添加Qlabel控件,在QLabel中使用QMovie播放gif。

#include "WaitDialog.h"
#include<QPainter>
#include<QMovie>

WaitDialog::WaitDialog(QWidget *parent, QString fileName, int picWidth, int picHeight)
    : QWidget(parent)
{
    ui.setupUi(this);

    m_picWidth = picWidth;
    m_picHeight = picHeight;
    this->setFixedSize(m_picWidth,m_picHeight);
    this->setWindowFlags(Qt::Dialog|Qt::FramelessWindowHint);
    this->setAutoFillBackground(true);
    this->setContentsMargins(0,0,0,0);
    ui.label->setContentsMargins(0,0,0,0);
    QMovie*movie=new QMovie(fileName);
    ui.label->setMovie(movie);
    movie->start();
}

WaitDialog::~WaitDialog()
{
}

 

gif圖片在release下不顯示問題:

  在Qt的目錄下有plugins/imageformats這樣一個目錄,里面有qgif.dll,qjpeg4.dll等動態鏈接庫,當在安裝過QT的機器上,這些庫能被成功指定調用,所以本機gif能正常顯示;

  當是移到其他沒有安裝QT的機器時,因為找不到這些庫文件,所以導致圖片無法顯示.

解決方案如下:

  在exe應用程序目錄下建立plugins/imageformats文件夾,將需要的圖像支持插件拷貝進去;

  在程序源文件main.cpp 的QApplication a(argc, argv);一行前添加如下代碼QApplication::addLibraryPath("./plugins");

另:

假如使用資源圖片顯示,例如:

QMovie* movie = new QMovie(":/display/Resources/loading.gif"); //注意此處路徑,可打開qrc 查看圖片文件的 resource url,路徑需與url一致。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM