有時候要進行某項后台處理,但后台處理時間很長,需要提示用戶等待,不妨做一個動態等待窗口。具體實現過程如下:
1 自定義窗口類DlgWait
(1) 在資源中添加動態的gif圖片,記住它的大小。
我添加的是一個“loading.gif”圖片,大小是100x100,如下:
(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 使用該等待窗口
效果如下:



