Sur cette page

QSplashScreen Class

Le widget QSplashScreen permet d'afficher un écran de démarrage lors du lancement de l'application. En savoir plus...

En-tête : #include <QSplashScreen>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite de : QWidget

Fonctions publiques

QSplashScreen(const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = Qt::WindowFlags())
QSplashScreen(QScreen *screen, const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = Qt::WindowFlags())
virtual ~QSplashScreen()
void finish(QWidget *mainWin)
QString message() const
const QPixmap pixmap() const
void repaint()
void setPixmap(const QPixmap &pixmap)

Slots publics

void clearMessage()
void showMessage(const QString &message, int alignment = Qt::AlignLeft, const QColor &color = Qt::black)

Signaux

void messageChanged(const QString &message)

Fonctions protégées

virtual void drawContents(QPainter *painter)

Fonctions protégées réimplémentées

virtual bool event(QEvent *e) override
virtual void mousePressEvent(QMouseEvent *) override

Description détaillée

Un écran de démarrage est un widget qui s'affiche généralement au lancement d'une application. Les écrans de démarrage sont souvent utilisés pour les applications dont le démarrage est long (par exemple, les applications de base de données ou de réseau qui mettent du temps à établir des connexions) afin d'indiquer à l'utilisateur que l'application est en cours de chargement.

L'écran de démarrage apparaît au centre de l'écran. Il peut être utile d'ajouter l'Qt::WindowStaysOnTopHint aux indicateurs de fenêtre du widget d'écran de démarrage si vous souhaitez qu'il reste au-dessus de toutes les autres fenêtres du bureau.

Certains gestionnaires de fenêtres X11 ne prennent pas en charge l’indicateur « reste au premier plan ». Une solution consiste à configurer une minuterie qui appelle périodiquement la fonction raise() sur l’écran de démarrage afin de simuler l’effet « reste au premier plan ».

L'utilisation la plus courante consiste à afficher un écran de démarrage avant que le widget principal n'apparaisse à l'écran. Ceci est illustré dans l'extrait de code suivant, dans lequel un écran de démarrage s'affiche et certaines tâches d'initialisation sont effectuées avant que la fenêtre principale de l'application ne s'affiche :

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPixmap pixmap(":/splash.png");
    QSplashScreen splash(pixmap);
    splash.show();
    app.processEvents();
    //...
    QMainWindow window;
    window.show();
    splash.finish(&window);
    return app.exec();
}

L’utilisateur peut masquer l’écran de démarrage en cliquant dessus avec la souris. Pour que la gestion de la souris fonctionne, appelez périodiquement la fonction QApplication::processEvents() pendant le démarrage.

Il est parfois utile de mettre à jour l’écran de démarrage avec des messages, par exemple pour annoncer les connexions établies ou les modules chargés au démarrage de l’application :

QPixmap pixmap(":/splash.png");
QSplashScreen *splash = new QSplashScreen(pixmap);
splash->show();

... // Loading some items
splash->showMessage("Loaded modules");

QCoreApplication::processEvents();

... // Establishing connections
splash->showMessage("Established connections");

QCoreApplication::processEvents();

QSplashScreen prend cela en charge grâce à la fonction ` showMessage()`. Si vous souhaitez réaliser votre propre dessin, vous pouvez obtenir un pointeur vers la carte de bits utilisée dans l’écran de démarrage avec ` pixmap()`. Vous pouvez également créer une sous-classe de `QSplashScreen` et réimplémenter ` drawContents()`.

Si vous disposez de plusieurs écrans, il est également possible d’afficher l’écran de démarrage sur un écran autre que l’écran principal. Par exemple :

QScreen *screen = QGuiApplication::screens().at(1);
QPixmap pixmap(":/splash.png");
QSplashScreen splash(screen, pixmap);
splash.show();

Documentation des fonctions membres

[explicit] QSplashScreen::QSplashScreen(const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = Qt::WindowFlags())

Créez un écran de démarrage qui affichera l'pixmap.

Il ne devrait pas être nécessaire de définir les indicateurs du widget, f, à l'exception peut-être de Qt::WindowStaysOnTopHint.

QSplashScreen::QSplashScreen(QScreen *screen, const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = Qt::WindowFlags())

Cette fonction vous permet de spécifier l'écran sur lequel s'affichera votre écran de démarrage. Ce constructeur est généralement utilisé lorsque vous disposez de plusieurs écrans et que vous préférez que l'écran de démarrage s'affiche sur un écran différent de votre écran principal. Dans ce cas, transmettez l'screen appropriée.

Il s'agit d'une fonction surchargée.

[virtual noexcept] QSplashScreen::~QSplashScreen()

Destructeur.

[slot] void QSplashScreen::clearMessage()

Supprime le message affiché sur l'écran de démarrage

Voir aussi showMessage().

[virtual protected] void QSplashScreen::drawContents(QPainter *painter)

Dessinez le contenu de l'écran de démarrage à l'aide de ` painter`. L'implémentation par défaut affiche le message transmis par la fonction ` showMessage()`. Réimplémentez cette fonction si vous souhaitez créer votre propre dessin sur l'écran de démarrage.

[override virtual protected] bool QSplashScreen::event(QEvent *e)

Réimplémente : QWidget::event(QEvent *event).

void QSplashScreen::finish(QWidget *mainWin)

Fait en sorte que l'écran de démarrage attende que le widget mainWin s'affiche avant d'appeler la méthode close() sur lui-même.

QString QSplashScreen::message() const

Renvoie le message actuellement affiché sur l'écran de démarrage.

Voir également showMessage() et clearMessage().

[signal] void QSplashScreen::messageChanged(const QString &message)

Ce signal est émis lorsque le message affiché sur l'écran d'accueil change. ` message ` correspond au nouveau message ; cette variable est une chaîne vide lorsque le message a été supprimé.

Voir également showMessage() et clearMessage().

[override virtual protected] void QSplashScreen::mousePressEvent(QMouseEvent *)

Réimplémente : QWidget::mousePressEvent(QMouseEvent *event).

const QPixmap QSplashScreen::pixmap() const

Renvoie l'image bitmap utilisée dans l'écran de démarrage. Cette image ne contient aucun des textes dessinés par les appels à la fonction showMessage().

Voir également setPixmap().

void QSplashScreen::repaint()

Cette méthode redéfinit ` QWidget::repaint()`. Elle diffère de la fonction de rafraîchissement standard en ce qu'elle appelle également ` QCoreApplication::processEvents()` afin de garantir l'affichage des mises à jour, même en l'absence de boucle d'événements.

void QSplashScreen::setPixmap(const QPixmap &pixmap)

Définit la carte de pixels qui servira d'image d'écran de démarrage sur pixmap.

Voir aussi pixmap().

[slot] void QSplashScreen::showMessage(const QString &message, int alignment = Qt::AlignLeft, const QColor &color = Qt::black)

Affiche le texte « message » sur l'écran de démarrage en utilisant les paramètres de couleur color et aligne le texte selon les indicateurs définis dans alignment. Cette fonction appelle repaint() pour s'assurer que l'écran de démarrage soit immédiatement rafraîchi. Ainsi, le message reste à jour par rapport à l'activité de votre application (par exemple, le chargement de fichiers).

Voir également Qt::Alignment, clearMessage() et message().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.