QSplashScreen

當應用程式檔案較大,啟動需要較長時間時,為了避免讓使用者疑惑是否程式終止,可使用QSplashScreen來顯示起始畫面,等程式建置完成後,這時才進入程式主窗口,讓使用者進行操作,這邊故意讓主窗口建置需要一段時間,這段等待時間螢幕上秀出預設的圖片。


widget.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

#endif 

widget.cpp

#include "mainwindow.h"
#include <QTextEdit>
#include <windows.h>

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent)
{
    setWindowTitle("Splash");
    QTextEdit *edit = new QTextEdit;
    edit->setText(tr("程式已開啟"));
    setCentralWidget(edit);
    resize(300,300);
    Sleep(5000);   //故意讓程式需要時間建置
}

main.cpp

#include "mainwindow.h"
#include <QApplication>
#include <QPixmap>
#include <QSplashScreen>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QPixmap pixmap("Qt.png");
    QSplashScreen splash(pixmap);
    splash.show();
    splash.showMessage("Please wait...", Qt::AlignHCenter|Qt::AlignTop, Qt::black);
    MainWindow w;
    w.show();
    splash.finish(&w);

    return a.exec();
}

QSplashScreen