Jump to content

How to create a splash screen with an induced delay

From Qt Wiki
Revision as of 18:57, 28 June 2015 by Wieland (talk | contribs) (Cleanup)

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

We have QSplashScreen which is used to cover up the starting delay of the program. Some times the programs might be quick enough, so that the splash screen may not be visible. We may induce some delay to show the splash, as a decoration!

Here in this example, using QThread a delay is induced.

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

class I : public QThread
{
public:
    static void sleep(unsigned long secs) { QThread::sleep(secs); }
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPixmap pixmap("splash.jpg");
    QSplashScreen splash(pixmap);
    splash.show();
    MainWindow mainWin;
    mainWin.setWindowTitle("Application");
    I::sleep(5); // splash is shown for 5 seconds
    mainWin.showMaximized();
    splash.finish(&mainWin);
    return app.exec();
}