Qt5_基本對話方塊之程式啟動畫面(QSplashScreen)
阿新 • • 發佈:2019-02-01
多數大型應用程式啟動時都會在程式完全啟動前顯示一個啟動畫面,在程式完全啟動後消失。
本節主要介紹在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)。