Qt5_基本对话框之程序启动画面(QSplashScreen)

多数大型应用程序启动时都会在程序完全启动前显示一个启动画面,在程序完全启动后消失。
本节主要介绍在Linux系统中如何实现这一功能。
首先是mainwindow.h文件,自动生成的代码如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

#endif // MAINWINDOW_H
打开“mainwindow.cpp”源文件,添加如下代码:
#include "mainwindow.h"
#include 
#include 


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 
**#include 
#include **

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();
}
运行即可。启动效果图如下:

Qt5_基本对话框之程序启动画面(QSplashScreen)_第1张图片
Qt5_基本对话框之程序启动画面(QSplashScreen)_第2张图片

注意,在Linux系统下,mainwindow.cpp文件中包含的头文件是,使用的休眠程序是sleep(2),即休眠两秒。
而在Windowsx系统下,mainwindow.cpp文件中包含的头文件是,使用的休眠函数是Sleep(2000)。

你可能感兴趣的:(Qt5学习笔记)