Sur cette page

QApplication Class

La classe QApplication gère le flux de contrôle et les paramètres principaux de l'application GUI. Plus d'informations...

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

Propriétés

Fonctions publiques

QApplication(int &argc, char **argv)
virtual ~QApplication()
bool autoSipEnabled() const
QString styleSheet() const

Fonctions publiques réimplémentées

virtual bool notify(QObject *receiver, QEvent *e) override

Emplacements publics

void aboutQt()
void closeAllWindows()
void setAutoSipEnabled(const bool enabled)
void setStyleSheet(const QString &sheet)

Signaux

void focusChanged(QWidget *old, QWidget *now)

Membres publics statiques

QWidget *activeModalWidget()
QWidget *activePopupWidget()
QWidget *activeWindow()
void alert(QWidget *widget, int msec = 0)
QWidgetList allWidgets()
void beep()
int cursorFlashTime()
int doubleClickInterval()
int exec()
QWidget *focusWidget()
QFont font()
QFont font(const QWidget *widget)
QFont font(const char *className)
bool isEffectEnabled(Qt::UIEffect effect)
int keyboardInputInterval()
Qt::NavigationMode navigationMode()
QPalette palette(const QWidget *widget)
QPalette palette(const char *className)
void setCursorFlashTime(int)
void setDoubleClickInterval(int)
void setEffectEnabled(Qt::UIEffect effect, bool enable = true)
void setFont(const QFont &font, const char *className = nullptr)
void setKeyboardInputInterval(int)
void setNavigationMode(Qt::NavigationMode mode)
void setPalette(const QPalette &palette, const char *className = nullptr)
void setStartDragDistance(int l)
void setStartDragTime(int ms)
void setStyle(QStyle *style)
QStyle *setStyle(const QString &style)
void setWheelScrollLines(int)
int startDragDistance()
int startDragTime()
QStyle *style()
QWidget *topLevelAt(const QPoint &point)
QWidget *topLevelAt(int x, int y)
QWidgetList topLevelWidgets()
int wheelScrollLines()
QWidget *widgetAt(const QPoint &point)
QWidget *widgetAt(int x, int y)

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

virtual bool event(QEvent *e) override

Macros

Description détaillée

QApplication spécialise QGuiApplication avec certaines fonctionnalités nécessaires pour les applications basées sur QWidget. Elle gère l'initialisation et la finalisation spécifiques aux widgets.

Pour toute application GUI utilisant Qt, il y a précisément un objet QApplication, que l'application ait 0, 1, 2 ou plusieurs fenêtres à un moment donné. Pour les applications Qt non basées surQWidget, utilisez plutôt QGuiApplication, car il ne dépend pas de la bibliothèque QtWidgets.

Certaines applications GUI proposent un mode batch spécial, c'est-à-dire qu'elles fournissent des arguments de ligne de commande pour exécuter des tâches sans intervention manuelle. Dans ce mode non-GUI, il est souvent suffisant d'instancier un simple QCoreApplication pour éviter d'initialiser inutilement les ressources nécessaires à une interface utilisateur graphique. L'exemple suivant montre comment créer dynamiquement un type approprié d'instance d'application :

QCoreApplication* createApplication(int &argc, char *argv[])
{
    for (int i = 1; i < argc; ++i) {
        if (!qstrcmp(argv[i], "-no-gui"))
            return new QCoreApplication(argc, argv);
    }
    return new QApplication(argc, argv);
}

int main(int argc, char* argv[])
{
    QScopedPointer<QCoreApplication> app(createApplication(argc, argv));

    if (qobject_cast<QApplication *>(app.data())) {
       // start GUI version...
    } else {
       // start non-GUI version...
    }

    return app->exec();
}

L'objet QApplication est accessible par la fonction instance() qui renvoie un pointeur équivalent au pointeur global qApp.

Les principaux domaines de responsabilité de QApplication sont les suivants :

  • Il initialise l'application avec les paramètres du bureau de l'utilisateur tels que palette(), font() et doubleClickInterval(). Elle garde la trace de ces propriétés au cas où l'utilisateur modifierait globalement le bureau, par exemple à l'aide d'une sorte de panneau de contrôle.
  • Il gère les événements, c'est-à-dire qu'il reçoit les événements du système de fenêtres sous-jacent et les transmet aux widgets concernés. En utilisant sendEvent() et postEvent(), vous pouvez envoyer vos propres événements aux widgets.
  • Il analyse les arguments de ligne de commande courants et définit son état interne en conséquence. Voir constructor documentation ci-dessous pour plus de détails.
  • Il définit l'aspect et la convivialité de l'application, qui est encapsulée dans un objet QStyle. Cet objet peut être modifié à l'exécution avec setStyle().
  • Il fournit la localisation des chaînes de caractères visibles par l'utilisateur via translate().
  • Il fournit quelques objets magiques comme clipboard().
  • Il connaît les fenêtres de l'application. Vous pouvez demander quel widget se trouve à une certaine position en utilisant widgetAt(), obtenir une liste de topLevelWidgets() et closeAllWindows(), etc.
  • Il gère le curseur de la souris de l'application, voir setOverrideCursor()

Étant donné que l'objet QApplication effectue une grande partie de l'initialisation, il doit être créé avant que tout autre objet lié à l'interface utilisateur ne soit créé. QApplication traite également les arguments courants de la ligne de commande. C'est pourquoi il est généralement judicieux de le créer avant toute interprétation ou modification de argv dans l'application elle-même.

Voir également QCoreApplication, QAbstractEventDispatcher, QEventLoop, et QSettings.

Documentation sur les propriétés

autoSipEnabled : bool

active la visibilité automatique du SIP (panneau d'entrée logiciel)

Définir cette propriété à true pour afficher automatiquement le SIP lors de l'entrée dans des widgets qui acceptent la saisie au clavier. Cette propriété n'affecte que les widgets pour lesquels l'attribut WA_InputMethodEnabled est activé. Elle est généralement utilisée pour lancer un clavier virtuel sur des appareils qui n'ont que très peu de touches, voire aucune.

Cette propriété n'a d'effet que sur les plates-formes qui utilisent des panneaux d'entrée logiciels.

La valeur par défaut dépend de la plate-forme.

Fonctions d'accès :

bool autoSipEnabled() const
void setAutoSipEnabled(const bool enabled)

cursorFlashTime : int

Cette propriété définit le temps de clignotement du curseur de texte en millisecondes

Le temps de clignotement est le temps nécessaire pour afficher, inverser et restaurer l'affichage du curseur. En général, le curseur de texte est affiché pendant la moitié du temps de clignotement du curseur, puis caché pendant le même laps de temps, mais cela peut varier.

La valeur par défaut sous X11 est de 1000 millisecondes. Sous Windows, la valeur Control Panel est utilisée et le réglage de cette propriété définit le temps de clignotement du curseur pour toutes les applications.

Nous recommandons aux widgets de ne pas mettre cette valeur en cache, car elle peut changer à tout moment si l'utilisateur modifie les paramètres globaux du bureau.

Remarque : cette propriété peut contenir une valeur négative, par exemple si le clignotement du curseur est désactivé.

Fonctions d'accès :

int cursorFlashTime()
void setCursorFlashTime(int)

doubleClickInterval : int

Cette propriété définit le délai en millisecondes qui permet de distinguer un double clic de deux clics de souris consécutifs

La valeur par défaut sous X11 est de 400 millisecondes. Sous Windows et Mac OS, c'est la valeur du système d'exploitation qui est utilisée.

Fonctions d'accès :

int doubleClickInterval()
void setDoubleClickInterval(int)

keyboardInputInterval : int

Cette propriété définit le délai en millisecondes qui distingue une pression sur une touche de deux pressions consécutives sur la même touche

La valeur par défaut sous X11 est de 400 millisecondes. Sous Windows et Mac OS, c'est la valeur du système d'exploitation qui est utilisée.

Fonctions d'accès :

int keyboardInputInterval()
void setKeyboardInputInterval(int)

startDragDistance : int

Cette propriété indique la distance minimale requise pour qu'une opération de glisser-déposer démarre.

Si vous prenez en charge le glisser-déposer dans votre application et que vous souhaitez lancer une opération de glisser-déposer après que l'utilisateur a déplacé le curseur d'une certaine distance en maintenant le bouton enfoncé, vous devez utiliser la valeur de cette propriété comme distance minimale requise.

Par exemple, si la position de la souris au moment du clic est stockée dans startPos et que la position actuelle (par exemple, dans l'événement de déplacement de la souris) est currentPos, vous pouvez déterminer si une opération de glisser-déposer doit être lancée à l'aide d'un code comme celui-ci :

if ((startPos - currentPos).manhattanLength() >=
        QApplication::startDragDistance())
    startTheDrag();

Qt utilise cette valeur en interne, par exemple dans QFileDialog.

La valeur par défaut (si la plate-forme ne fournit pas de valeur par défaut différente) est de 10 pixels.

Fonctions d'accès :

int startDragDistance()
void setStartDragDistance(int l)

Voir également startDragTime(), QPoint::manhattanLength() et Drag and Drop.

startDragTime : int

Cette propriété indique le temps en millisecondes pendant lequel le bouton de la souris doit être maintenu enfoncé avant qu'une opération de glisser-déposer ne commence

Si vous prenez en charge le glisser-déposer dans votre application et que vous souhaitez démarrer une opération de glisser-déposer après que l'utilisateur a maintenu le bouton de la souris enfoncé pendant un certain temps, vous devez utiliser la valeur de cette propriété comme délai.

Qt XML utilise également ce délai en interne, par exemple dans QTextEdit et QLineEdit, pour démarrer une opération de glisser-déposer.

La valeur par défaut est de 500 ms.

Fonctions d'accès :

int startDragTime()
void setStartDragTime(int ms)

Voir également startDragDistance() et Drag and Drop.

styleSheet : QString

Cette propriété contient la feuille de style de l'application

Par défaut, cette propriété renvoie une chaîne vide, sauf si l'utilisateur spécifie l'option -stylesheet sur la ligne de commande lors de l'exécution de l'application.

Fonctions d'accès :

QString styleSheet() const
void setStyleSheet(const QString &sheet)

Voir aussi QWidget::setStyle() et Qt Style Sheets.

wheelScrollLines : int

Cette propriété indique le nombre de lignes de défilement d'un widget lorsque la molette de la souris est tournée.

Si la valeur dépasse le nombre de lignes visibles du widget, ce dernier doit interpréter l'opération de défilement comme une simple page vers le haut ou vers le bas. Si le widget est un item view class, le résultat du défilement d'une ligne dépend de la valeur de la propriété scroll mode. Le défilement d'une ligne peut signifier scroll one item ou scroll one pixel.

Par défaut, cette propriété a une valeur de 3.

Fonctions d'accès :

int wheelScrollLines()
void setWheelScrollLines(int)

Voir également QStyleHints::wheelScrollLines().

Documentation des fonctions membres

QApplication::QApplication(int &argc, char **argv)

Initialise le système de fenêtres et construit un objet d'application avec les arguments de la ligne de commande argc dans argv.

Attention : Les données auxquelles se réfèrent argc et argv doivent rester valides pendant toute la durée de vie de l'objet QApplication. En outre, argc doit être supérieur à zéro et argv doit contenir au moins une chaîne de caractères valide.

Le pointeur global qApp fait référence à cet objet d'application. Un seul objet d'application doit être créé.

Cet objet d'application doit être construit avant tout paint devices (y compris les widgets, pixmaps, bitmaps, etc.).

Remarque : argc et argv peuvent être modifiés au fur et à mesure que Qt supprime les arguments de ligne de commande qu'il reconnaît.

Tous les programmes Qt supportent automatiquement les options de ligne de commande suivantes :

  • -style= style, définit le style de l'interface graphique de l'application. Les valeurs possibles dépendent de la configuration de votre système. Si vous avez compilé Qt avec des styles supplémentaires ou si vous avez des styles supplémentaires en tant que plugins, ceux-ci seront disponibles pour l'option de ligne de commande -style. Vous pouvez également définir le style pour toutes les applications Qt en définissant la variable d'environnement QT_STYLE_OVERRIDE.
  • -style style, est identique à la liste ci-dessus.
  • -stylesheet= stylesheet, définit la feuille de style de l'application. La valeur doit être un chemin vers un fichier contenant la feuille de style.

    Remarque : les URL relatives dans le fichier de feuille de style sont relatives au chemin d'accès du fichier de feuille de style.

  • -stylesheet feuille de style, est identique à la liste ci-dessus.
  • -widgetcount, affiche un message de débogage à la fin de l'exécution concernant le nombre de widgets non détruits et le nombre maximum de widgets existants en même temps.
  • -reverse, définit la direction de la mise en page de l'application à Qt::RightToLeft
  • -qmljsdebugger=, active le débogueur QML/JS avec un port spécifié. La valeur doit être du format port:1234[,block], où block est optionnel et fera attendre l'application jusqu'à ce qu'un débogueur se connecte à elle.

Voir aussi QCoreApplication::arguments().

[virtual noexcept] QApplication::~QApplication()

Nettoie toutes les ressources du système de fenêtres qui ont été allouées par cette application. Définit la variable globale qApp à nullptr.

[static slot] void QApplication::aboutQt()

Affiche une boîte de message simple sur Qt. Le message inclut le numéro de version de Qt utilisé par l'application.

Il est utile de l'inclure dans le menu Help d'une application, comme le montre l'exemple des menus.

Cette fonction est un slot de commodité pour QMessageBox::aboutQt().

[static] QWidget *QApplication::activeModalWidget()

Renvoie le widget modal actif.

Un widget modal est un widget spécial de premier niveau qui est une sous-classe de QDialog et qui spécifie que le paramètre modal du constructeur est vrai. Un widget modal doit être fermé avant que l'utilisateur puisse poursuivre d'autres parties du programme.

Les widgets modaux sont organisés en pile. Cette fonction renvoie le widget modal actif au sommet de la pile.

Voir également activePopupWidget() et topLevelWidgets().

[static] QWidget *QApplication::activePopupWidget()

Renvoie le widget popup actif.

Un widget popup est un widget spécial de haut niveau qui active le drapeau du widget Qt::WType_Popup, par exemple le widget QMenu. Lorsque l'application ouvre un widget popup, tous les événements sont envoyés au popup. Les widgets normaux et les widgets modaux ne sont pas accessibles avant la fermeture du widget popup.

Seuls d'autres widgets popup peuvent être ouverts lorsqu'un widget popup est affiché. Les fenêtres contextuelles sont organisées en pile. Cette fonction renvoie le widget popup actif au sommet de la pile.

Voir aussi activeModalWidget() et topLevelWidgets().

[static] QWidget *QApplication::activeWindow()

Renvoie la fenêtre de premier niveau de l'application qui a le focus sur l'entrée clavier, ou nullptr si aucune fenêtre de l'application n'a le focus. Il peut y avoir une activeWindow() même s'il n'y a pas de focusWidget(), par exemple si aucun widget dans cette fenêtre n'accepte les événements de touche.

Voir également QWidget::setFocus(), QWidget::hasFocus() et focusWidget().

[static] void QApplication::alert(QWidget *widget, int msec = 0)

Provoque l'affichage d'une alerte sur widget si la fenêtre n'est pas la fenêtre active. L'alerte est affichée pendant msec millisecondes. Si msec est égal à zéro (valeur par défaut), l'alerte est affichée indéfiniment jusqu'à ce que la fenêtre redevienne active.

Actuellement, cette fonction n'a aucun effet sur Qt for Embedded Linux.

Sous macOS, elle fonctionne plutôt au niveau de l'application et fait rebondir l'icône de l'application dans le dock.

Sous Windows, l'entrée de la barre des tâches de la fenêtre clignote pendant un certain temps. Si msec est égal à zéro, le clignotement s'arrête et l'entrée de la barre des tâches prend une couleur différente (actuellement orange).

Sous X11, la fenêtre sera marquée comme "exigeant de l'attention". La fenêtre ne doit pas être cachée (c'est-à-dire qu'elle ne doit pas faire l'objet d'un appel à hide(), mais être visible d'une manière ou d'une autre) pour que cela fonctionne.

[static] QWidgetList QApplication::allWidgets()

Renvoie une liste de tous les widgets de l'application.

La liste est vide (QList::isEmpty()) s'il n'y a pas de widgets.

Remarque : certains widgets peuvent être cachés.

Exemple :

void updateAllWidgets()
{
    const QWidgetList allWidgets = QApplication::allWidgets();
    for (QWidget *widget : allWidgets)
        widget->update();
}

Voir aussi topLevelWidgets() et QWidget::isVisible().

[static] void QApplication::beep()

Sonne la cloche, en utilisant le volume et le son par défaut. Cette fonction n'est pas disponible dans Qt for Embedded Linux.

[static slot] void QApplication::closeAllWindows()

Ferme toutes les fenêtres de premier niveau.

Cette fonction est particulièrement utile pour les applications comportant de nombreuses fenêtres de premier niveau.

Les fenêtres sont fermées dans un ordre aléatoire, jusqu'à ce qu'une fenêtre n'accepte pas l'événement de fermeture. L'application se termine lorsque la dernière fenêtre a été fermée avec succès, à moins que quitOnLastWindowClosed ne soit défini comme faux. Pour déclencher la fermeture de l'application à partir d'un menu, par exemple, utilisez QCoreApplication::quit() au lieu de cette fonction.

Voir également quitOnLastWindowClosed, lastWindowClosed(), QWidget::close(), QWidget::closeEvent(), QCoreApplication::quit(), topLevelWidgets() et QWidget::isWindow().

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

Réimplémente : QGuiApplication::event(QEvent *e).

[static] int QApplication::exec()

Entre dans la boucle événementielle principale et attend que exit() soit appelé, puis renvoie la valeur qui a été définie à exit() (qui est 0 si exit() est appelé via quit()).

Il est nécessaire d'appeler cette fonction pour commencer à gérer les événements. La boucle d'événements principale reçoit des événements du système de fenêtres et les distribue aux widgets de l'application.

En général, aucune interaction avec l'utilisateur ne peut avoir lieu avant l'appel à exec(). Dans un cas particulier, les widgets modaux tels que QMessageBox peuvent être utilisés avant d'appeler exec(), car les widgets modaux appellent exec() pour démarrer une boucle d'événements locale.

Pour que votre application effectue un traitement au ralenti, c'est-à-dire qu'elle exécute une fonction spéciale chaque fois qu'il n'y a pas d'événements en attente, utilisez un QChronoTimer avec un délai d'attente de 0ns. Des schémas de traitement au ralenti plus avancés peuvent être réalisés en utilisant processEvents().

Nous vous recommandons de connecter le code de nettoyage au signal aboutToQuit(), plutôt que de le placer dans la fonction main() de votre application. En effet, sur certaines plateformes, l'appel à QApplication::exec() peut ne pas être retourné. Par exemple, sur la plate-forme Windows, lorsque l'utilisateur se déconnecte, le système met fin au processus après que Qt a fermé toutes les fenêtres de niveau supérieur. Il n' est donc pas garanti que l'application aura le temps de sortir de sa boucle d'événements et d'exécuter le code à la fin de la fonction main(), après l'appel de QApplication::exec().

Voir également quitOnLastWindowClosed, QCoreApplication::quit(), QCoreApplication::exit(), QCoreApplication::processEvents() et QCoreApplication::exec().

[signal] void QApplication::focusChanged(QWidget *old, QWidget *now)

Ce signal est émis lorsque le widget qui a le focus clavier est passé de old à now, c'est-à-dire parce que l'utilisateur a appuyé sur la touche de tabulation, cliqué dans un widget ou changé de fenêtre active. Les deux old et now peuvent être nullptr.

Le signal est émis après que les deux widgets ont été informés du changement par l'intermédiaire de QFocusEvent.

Voir également QWidget::setFocus(), QWidget::clearFocus() et Qt::FocusReason.

[static] QWidget *QApplication::focusWidget()

Renvoie le widget de l'application qui a le focus sur la saisie clavier, ou nullptr si aucun widget de cette application n'a le focus.

Voir aussi QWidget::setFocus(), QWidget::hasFocus(), activeWindow() et focusChanged().

[static] QFont QApplication::font()

Renvoie la police par défaut de l'application.

Voir aussi setFont(), fontMetrics() et QWidget::font().

[static] QFont QApplication::font(const QWidget *widget)

Renvoie la police par défaut de la classe widget. Si aucune police par défaut n'a été enregistrée pour la classe widget, elle renvoie la police par défaut de la superclasse enregistrée la plus proche.

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

Voir aussi fontMetrics(), setFont() et QWidget::setFont().

[static] QFont QApplication::font(const char *className)

Renvoie la police de caractères pour les widgets de l'adresse className.

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

Voir aussi setFont() et QWidget::font().

[static] bool QApplication::isEffectEnabled(Qt::UIEffect effect)

Renvoie true si effect est activé, sinon false.

Par défaut, Qt essaiera d'utiliser les paramètres du bureau. Pour empêcher cela, appelez setDesktopSettingsAware(false).

Remarque : tous les effets sont désactivés sur les écrans dont la profondeur de couleur est inférieure à 16 bits.

Voir également setEffectEnabled() et Qt::UIEffect.

Renvoie le type de navigation de mise au point utilisé par Qt.

Cette fonctionnalité n'est disponible que dans Qt pour Linux embarqué.

Voir aussi setNavigationMode().

[override virtual] bool QApplication::notify(QObject *receiver, QEvent *e)

Réimplémente : QGuiApplication::notify(QObject *objet, QEvent *événement).

[static] QPalette QApplication::palette(const QWidget *widget)

Si une adresse widget est fournie, la palette par défaut de la classe du widget est renvoyée. Il peut s'agir ou non de la palette de l'application. Dans la plupart des cas, il n'y a pas de palette spéciale pour certains types de widgets, mais une exception notable est le menu contextuel sous Windows, si l'utilisateur a défini une couleur d'arrière-plan spéciale pour les menus dans les paramètres d'affichage.

Voir également setPalette() et QWidget::palette().

[static] QPalette QApplication::palette(const char *className)

Renvoie la palette des widgets de l'adresse className.

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

Voir aussi setPalette() et QWidget::palette().

[static] void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable = true)

Active l'effet d'interface utilisateur effect si enable est vrai, sinon l'effet ne sera pas utilisé.

Remarque : tous les effets sont désactivés sur les écrans dont la profondeur de couleur est inférieure à 16 bits.

Voir aussi isEffectEnabled(), Qt::UIEffect, et setDesktopSettingsAware().

[static] void QApplication::setFont(const QFont &font, const char *className = nullptr)

Change la police par défaut de l'application en font. Si className est fourni, le changement ne s'applique qu'aux classes qui héritent de className (comme indiqué par QObject::inherits()).

Au démarrage de l'application, la police par défaut dépend du système de fenêtres. Elle peut varier en fonction de la version du système de fenêtres et de la langue locale. Cette fonction vous permet de remplacer la police par défaut, mais cela peut être une mauvaise idée car, par exemple, certaines locales ont besoin de polices très grandes pour prendre en charge leurs caractères spéciaux.

Attention : N'utilisez pas cette fonction en conjonction avec les feuilles de style Qt. La police d'une application peut être personnalisée à l'aide de la propriété de feuille de style "font". Pour définir une police en gras pour tous les QPushButtons, définissez l'application styleSheet() comme "QPushButton { font : bold }"

Voir également font(), fontMetrics() et QWidget::setFont().

[static] void QApplication::setNavigationMode(Qt::NavigationMode mode)

Définit le type de navigation de focus que Qt doit utiliser pour mode.

Cette fonctionnalité n'est disponible que dans Qt pour Linux embarqué.

Voir également navigationMode().

[static] void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)

Modifie la palette de l'application en palette.

Si className est transmis, le changement ne s'applique qu'aux widgets qui héritent de className (comme indiqué par QObject::inherits()). Si className est laissé à 0, le changement affecte tous les widgets, remplaçant ainsi toutes les palettes spécifiques à une classe définies précédemment.

La palette peut être modifiée en fonction du style d'interface graphique actuel dans QStyle::polish().

Attention : N'utilisez pas cette fonction en conjonction avec les feuilles de style Qt. Lors de l'utilisation de feuilles de style, la palette d'un widget peut être personnalisée à l'aide des options "color", "background-color", "selection-color", "selection-background-color" et "alternate-background-color".

Note : Certains styles n'utilisent pas la palette pour tous les dessins, par exemple, s'ils utilisent des moteurs de thèmes natifs. C'est le cas des styles Windows Vista et macOS.

Voir également QWidget::setPalette(), palette() et QStyle::polish().

[static] void QApplication::setStyle(QStyle *style)

Définit le style de l'interface graphique de l'application à style. La propriété de l'objet style est transférée à QApplication, de sorte que QApplication supprimera l'objet style à la sortie de l'application ou lorsqu'un nouveau style est défini et que l'ancien style est toujours le parent de l'objet application.

Exemple d'utilisation :

QApplication::setStyle(QStyleFactory::create("Fusion"));

Lorsque l'on change de style d'application, la palette de couleurs est ramenée aux couleurs initiales ou aux valeurs par défaut du système. Cela est nécessaire car certains styles doivent adapter la palette de couleurs pour être totalement conformes au guide de style.

En définissant le style avant qu'une palette n'ait été définie, c'est-à-dire avant de créer QApplication, l'application utilisera QStyle::standardPalette() pour la palette.

Attention : Les feuilles de style Qt ne sont actuellement pas prises en charge pour les sous-classes personnalisées de QStyle. Nous prévoyons d'y remédier dans une prochaine version.

Voir aussi style(), QStyle, setPalette(), et desktopSettingsAware().

[static] QStyle *QApplication::setStyle(const QString &style)

Demande un objet QStyle pour style à partir de QStyleFactory.

La chaîne doit être l'une des QStyleFactory::keys(), typiquement l'une des suivantes : "windows", "windowsvista", "fusion" ou "macos". Les noms de style sont insensibles à la casse.

Renvoie nullptr si un style inconnu est transmis, sinon l'objet QStyle renvoyé est défini comme le style d'interface graphique de l'application.

Attention : Pour s'assurer que le style de l'application est défini correctement, il est préférable d'appeler cette fonction avant le constructeur de QApplication, si possible.

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

[static] QStyle *QApplication::style()

Renvoie l'objet de style de l'application.

Voir aussi setStyle() et QStyle.

[static] QWidget *QApplication::topLevelAt(const QPoint &point)

Renvoie le widget de premier niveau à l'adresse point; renvoie nullptr s'il n'existe pas de widget de ce type.

[static] QWidget *QApplication::topLevelAt(int x, int y)

Renvoie le widget de niveau supérieur au point (x, y) ; renvoie 0 s'il n'existe pas de widget de ce type.

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

[static] QWidgetList QApplication::topLevelWidgets()

Renvoie une liste des widgets de premier niveau (fenêtres) de l'application.

Remarque : certains widgets de premier niveau peuvent être cachés, par exemple une infobulle si aucune infobulle n'est actuellement affichée.

Exemple :

void showAllHiddenTopLevelWidgets()
{
    const QWidgetList topLevelWidgets = QApplication::topLevelWidgets();
    for (QWidget *widget : topLevelWidgets) {
        if (widget->isHidden())
            widget->show();
    }
}

Voir aussi allWidgets(), QWidget::isWindow() et QWidget::isHidden().

[static] QWidget *QApplication::widgetAt(const QPoint &point)

Renvoie le widget à la position globale de l'écran point, ou nullptr s'il n'y a pas de widget Qt à cet endroit.

Cette fonction peut être lente.

Voir aussi QCursor::pos(), QWidget::grabMouse(), et QWidget::grabKeyboard().

[static] QWidget *QApplication::widgetAt(int x, int y)

Renvoie le widget à la position globale de l'écran (x, y), ou nullptr s'il n'y a pas de widget Qt à cet endroit.

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

Documentation sur les macros

qApp

Pointeur global faisant référence à l'objet unique de l'application. Il est équivalent à QCoreApplication::instance(), mais il est converti en pointeur QApplication, et n'est donc valable que si l'objet unique de l'application est un QApplication.

Voir également QCoreApplication::instance() et qGuiApp.

© 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.