Home > Articles

  • Print
  • + Share This
This chapter is from the book

This chapter is from the book

Splash Screens

Many applications present a splash screen at startup. Some developers use a splash screen to disguise a slow startup, while others do it to satisfy their marketing departments. Adding a splash screen to Qt applications is very easy using the QSplashScreen class.

The QSplashScreen class shows an image before the application proper has started. It can also draw a message on the image, to inform the user about the progress of the application's initialization process. Typically, the splash screen code is located in main(), before the call to QApplication::exec().

Below is an example main() function that uses QSplashScreen to present a splash screen in an application that loads modules and establishes network connections at startup.

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QSplashScreen *splash =
            new QSplashScreen(QPixmap::fromMimeSource("splash.png"));
    splash->show();

    splash->message(QObject::tr("Setting up the main window..."),
                    Qt::AlignRight | Qt::AlignTop, Qt::white);
    MainWindow mainWin;
    app.setMainWidget(&mainWin);

    splash->message(QObject::tr("Loading modules..."),
                    Qt::AlignRight  | Qt::AlignTop, Qt::white);
    loadModules();

    splash->message(QObject::tr("Establishing connections..."),
                    Qt::AlignRight | Qt::AlignTop, Qt::white);
    establishConnections();

    mainWin.show();
    splash->finish(&mainWin);
    delete splash;

    return app.exec();
}
03fig18.gif

Figure 3.18. A QSplashScreen widget

We have now completed the Spreadsheet application's user interface. In the next chapter, we will complete the application by implementing the core spreadsheet functionality.

  • + Share This
  • 🔖 Save To Your Account