QSplashScreen Class
Le widget QSplashScreen fournit un écran d'accueil qui peut être affiché au démarrage de l'application. Plus d'informations...
| En-tête : | #include <QSplashScreen> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritages : | 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) |
Emplacements 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 d'accueil est un widget qui s'affiche généralement au démarrage d'une application. Les écrans de démarrage sont souvent utilisés pour les applications dont le temps de démarrage est long (par exemple, les applications de base de données ou de réseau qui prennent du temps pour établir des connexions) afin d'indiquer à l'utilisateur que l'application est en train de se charger.
L'écran de démarrage apparaît au centre de l'écran. Il peut être utile d'ajouter le site Qt::WindowStaysOnTopHint aux drapeaux de fenêtre du widget splash si vous souhaitez le placer au-dessus de toutes les autres fenêtres du bureau.
Certains gestionnaires de fenêtres X11 ne prennent pas en charge le drapeau "stays on top". Une solution consiste à mettre en place une minuterie qui appelle périodiquement raise() sur l'écran d'accueil pour simuler l'effet "stays on top".
L'utilisation la plus courante consiste à afficher un écran de démarrage avant que le widget principal ne soit affiché à l'écran. Ceci est illustré dans l'extrait de code suivant dans lequel un écran de démarrage est affiché et certaines tâches d'initialisation sont effectuées avant que la fenêtre principale de l'application ne soit affichée :
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, il faut appeler QApplication::processEvents() périodiquement au cours du démarrage.
Il est parfois utile de mettre à jour l'écran de démarrage avec des messages, par exemple, annonçant l'établissement de connexions ou le chargement de modules 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 en charge cette fonction avec la fonction showMessage(). Si vous souhaitez faire votre propre dessin, vous pouvez obtenir un pointeur sur la pixmap utilisée dans l'écran de démarrage à l'aide de la fonction pixmap(). Vous pouvez également sous-classer 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 différent de l'écran principal. Par exemple, l'écran de démarrage peut être affiché sur un autre écran que l'écran principal :
QScreen *screen = QGuiApplication::screens().at(1); QPixmap pixmap(":/splash.png"); QSplashScreen splash(screen, pixmap); splash.show();
Fonction membre Documentation
[explicit] QSplashScreen::QSplashScreen(const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = Qt::WindowFlags())
Construisez un écran de démarrage qui affichera le site pixmap.
Il ne devrait pas être nécessaire de définir les drapeaux du widget, f, sauf peut-être Qt::WindowStaysOnTopHint.
QSplashScreen::QSplashScreen(QScreen *screen, const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = Qt::WindowFlags())
Cette fonction vous permet de spécifier l'écran de votre splashscreen. 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 se trouve sur un écran différent de l'écran principal. Dans ce cas, passez la bonne adresse screen.
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 du peintre painter. L'implémentation par défaut dessine le message transmis par showMessage(). Réimplémentez cette fonction si vous souhaitez dessiner vous-même sur l'écran de veille.
[override virtual protected] bool QSplashScreen::event(QEvent *e)
Réimplémente : QWidget::event(QEvent *event).
void QSplashScreen::finish(QWidget *mainWin)
Fait attendre l'écran d'accueil jusqu'à ce que le widget mainWin soit affiché avant d'appeler close() sur lui-même.
QString QSplashScreen::message() const
Renvoie le message actuellement affiché sur l'écran de démarrage.
Voir aussi showMessage() et clearMessage().
[signal] void QSplashScreen::messageChanged(const QString &message)
Ce signal est émis lorsque le message sur l'écran de démarrage change. message est le nouveau message et est une chaîne nulle lorsque le message a été supprimé.
Voir aussi showMessage() et clearMessage().
[override virtual protected] void QSplashScreen::mousePressEvent(QMouseEvent *)
Réimplémente : QWidget::mousePressEvent(QMouseEvent *event).
const QPixmap QSplashScreen::pixmap() const
Renvoie la pixmap utilisée dans l'écran de démarrage. L'image ne contient pas le texte dessiné par les appels à showMessage().
Voir aussi setPixmap().
void QSplashScreen::repaint()
Cette fonction remplace QWidget::repaint(). Elle diffère de la fonction repaint standard en ce qu'elle appelle également QCoreApplication::processEvents() pour s'assurer que les mises à jour sont affichées, même en l'absence de boucle événementielle.
void QSplashScreen::setPixmap(const QPixmap &pixmap)
Définit la pixmap qui sera utilisée comme image de l'écran de démarrage à pixmap.
Voir aussi pixmap().
[slot] void QSplashScreen::showMessage(const QString &message, int alignment = Qt::AlignLeft, const QColor &color = Qt::black)
Dessine le texte message sur l'écran de démarrage avec la couleur color et aligne le texte selon les drapeaux dans alignment. Cette fonction appelle repaint() pour s'assurer que l'écran de démarrage est repeint immédiatement. Ainsi, le message reste à jour par rapport à ce que fait votre application (par exemple, le chargement de fichiers).
Voir aussi 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.