Qt 使用QMovie加載gif圖片實現動態等待窗口


有時候要進行某項后台處理,但后台處理時間很長,需要提示用戶等待,不妨做一個動態等待窗口。具體實現過程如下:

1 自定義窗口類DlgWait

(1) 在資源中添加動態的gif圖片,記住它的大小。

我添加的是一個“loading.gif”圖片,大小是100x100,如下:

loading

(2)添加一個窗口界面類DlgWait

窗口大小比gif稍大即可,如150x150

在界面上添加2個QLabel:

第一個用來顯示gif,名為lbl_gif,text為空,大小為100x100

第二個在下,用來顯示提示信息,名為lbl_text,text為“后台處理中,請稍候”

如下所示:

設計界面

(3) 設置DlgWait窗口無邊框,背景透明的效果,並加載gif圖片

在DlgWait的構造函數中添加如下代碼:

setWindowFlags(Qt::FramelessWindowHint);//無邊框

  setAttribute(Qt::WA_TranslucentBackground);//背景透明

  //屏幕居中顯示

  int frmX = width();

  int frmY = height();

  QDesktopWidget w;

  int deskWidth = w.width();

  int deskHeight = w.height();

  QPoint movePoint(deskWidth / 2 - frmX / 2, deskHeight / 2 - frmY / 2);

  move(movePoint);

  //加載gif圖片

  QMovie *movie = new QMovie(":/img/loading");

  ui->lbl_gif->setMovie(movie);

  movie->start();

 

 

2 使用該等待窗口

效果如下:

動畫等待界面


免責聲明!

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



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