1. 程式人生 > >Qt5_基本對話方塊之程式啟動畫面(QSplashScreen)

Qt5_基本對話方塊之程式啟動畫面(QSplashScreen)

多數大型應用程式啟動時都會在程式完全啟動前顯示一個啟動畫面,在程式完全啟動後消失。
本節主要介紹在Linux系統中如何實現這一功能。
首先是mainwindow.h檔案,自動生成的程式碼如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
};

#endif
// MAINWINDOW_H
開啟“mainwindow.cpp”原始檔,新增如下程式碼:
#include "mainwindow.h"
#include <QTextEdit>
#include <unistd.h>


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setWindowTitle("Splash Example");
    QTextEdit *edit=new QTextEdit;
    edit->setText("Splash Example"
); setCentralWidget(edit); resize(600,450); sleep(2); //由於啟動畫面通常在程式初始化事件較長的情況下出現,為了使程式初 //始化時間加長以顯示啟動畫面,此處呼叫Sleep()函式 } MainWindow::~MainWindow() { }
啟動畫面主要在main()函式中實現,開啟“main.cpp”檔案,新增以下加黑程式碼:
#include "mainwindow.h"
#include <QApplication>
**#include <QPixmap>
#include <QSplashScreen>** int main(int argc, char *argv[]) { QApplication a(argc, argv); //建立一個QApplication物件 **QPixmap pixmap("mxy.png");** //建立一個QPixmap物件,設定啟動圖片 **QSplashScreen splash(pixmap);** //利用QPixmap物件建立一個QSplashScreen物件 **splash.show();** //顯示此啟動圖片 **a.processEvents();** //使程式在顯示啟動畫面的同時仍能響應滑鼠其他事件 MainWindow w; //正常建立主窗體 w.show(); //呼叫show()函式顯示 **splash.finish(&w);** //在主窗體物件初始化完成後,結束啟動畫面 return a.exec(); }
執行即可。啟動效果圖如下:

程式啟動時的等待影象
等待之後的程式執行影象

注意,在Linux系統下,mainwindow.cpp檔案中包含的標頭檔案是<unistd.h>,使用的休眠程式是sleep(2),即休眠兩秒。
而在Windowsx系統下,mainwindow.cpp檔案中包含的標頭檔案是<windows.h>,使用的休眠函式是Sleep(2000)。