QApplication Class
La classe `QApplication` gère le flux de contrôle et les principaux paramètres de l'application graphique. En savoir plus...
| En-tête : | #include <QApplication> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite de : | 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 |
Slots 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() |
| 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 | 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 est une spécialisation de l'QGuiApplication, dotée de certaines fonctionnalités nécessaires aux applications basées sur l'QWidget. Elle gère l'initialisation et la finalisation spécifiques aux widgets.
Pour toute application GUI utilisant Qt, il existe exactement un objet QApplication, que l'application comporte 0, 1, 2 ou plusieurs fenêtres à un moment donné. Pour les applications Qt non basées surQWidget, utilisez plutôt QGuiApplication, car celle-ci ne dépend pas de la bibliothèque QtWidgets.
Certaines applications graphiques proposent un mode batch spécial, c'est-à-dire qu'elles acceptent des arguments de ligne de commande pour exécuter des tâches sans intervention manuelle. Dans ce mode non graphique, il suffit souvent 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 une instance d'application du type approprié :
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 via la fonction instance(), qui renvoie un pointeur équivalent au pointeur global qApp.
Les principales responsabilités de QApplication sont les suivantes :
- Il initialise l’application avec les paramètres du bureau de l’utilisateur, tels que palette(), font() et doubleClickInterval(). Il garde la trace de ces propriétés au cas où l’utilisateur modifierait le bureau de manière globale, par exemple via un panneau de configuration.
- Elle assure la gestion des événements, c'est-à-dire qu'elle reçoit les événements provenant du système de fenêtrage sous-jacent et les transmet aux widgets concernés. En utilisant sendEvent() et postEvent(), vous pouvez envoyer vos propres événements aux widgets.
- Elle analyse les arguments courants de la ligne de commande et définit son état interne en conséquence. Voir la méthode constructor documentation ci-dessous pour plus de détails.
- Elle définit l’apparence et le comportement de l’application, qui sont encapsulés dans un objet ` QStyle `. Ceux-ci peuvent être modifiés à l’exécution à l’aide de ` setStyle()`.
- Elle permet la localisation des chaînes de caractères visibles par l’utilisateur via la fonction ` translate()`.
- Elle fournit des objets « magiques » tels que clipboard().
- Il connaît les fenêtres de l’application. Vous pouvez demander quel widget se trouve à une certaine position à l’aide de ` widgetAt()`, obtenir une liste des ` topLevelWidgets()` et ` closeAllWindows()`, etc.
- Il gère le comportement du curseur de souris de l’application ; voir setOverrideCursor()
Étant donné que l’objet QApplication effectue de nombreuses initialisations, il doit être créé avant tout autre objet lié à l’interface utilisateur. QApplication gère également les arguments courants de la ligne de commande. Il est donc généralement recommandé de le créer avant toute interprétation ou modification de argv dans l’application elle-même.
| Groupes de fonctions | |
|---|---|
| Paramètres système | desktopSettingsAware(), setDesktopSettingsAware(), cursorFlashTime(), setCursorFlashTime(), doubleClickInterval(), setDoubleClickInterval(), setKeyboardInputInterval(), wheelScrollLines(), setWheelScrollLines(), palette(), setPalette(), font(), setFont(). |
| Gestion des événements | exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), notify(). |
| Styles d’interface graphique | style(), setStyle(). |
| Gestion du texte | installTranslator(), removeTranslator() translate(). |
| Widgets | allWidgets(), topLevelWidgets(), activePopupWidget(), activeModalWidget(), clipboard(), focusWidget(), activeWindow(), widgetAt(). |
| Gestion avancée du curseur | overrideCursor(), setOverrideCursor(), restoreOverrideCursor(). |
| Divers | closeAllWindows(), startingUp(), closingDown(). |
Voir également QCoreApplication, QAbstractEventDispatcher, QEventLoop et QSettings.
Documentation sur les propriétés
autoSipEnabled : bool
Active ou désactive l'affichage automatique du SIP (panneau de saisie logiciel)
Définissez cette propriété sur « true » pour afficher automatiquement le SIP lors de la saisie dans des widgets acceptant les entrées au clavier. Cette propriété n’affecte que les widgets pour lesquels l’attribut WA_InputMethodEnabled est défini, et est généralement utilisée pour lancer un clavier virtuel sur les appareils ne disposant que de très peu de touches, voire d’aucune.
Cette propriété n’a d’effet que sur les plateformes utilisant des panneaux de saisie logiciels.
La valeur par défaut dépend de la plateforme.
Fonctions d'accès :
| bool | autoSipEnabled() const |
| void | setAutoSipEnabled(const bool enabled) |
cursorFlashTime : int
Cette propriété définit la durée de clignotement du curseur texte, en millisecondes
La durée de clignotement correspond au temps nécessaire pour afficher, inverser et rétablir l'affichage du curseur. En général, le curseur texte est affiché pendant la moitié de la durée de clignotement, puis masqué pendant la même durée, mais cela peut varier.
La valeur par défaut sous X11 est de 1 000 millisecondes. Sous Windows, la valeur « Control Panel » est utilisée ; la configuration de cette propriété définit la durée 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 prendre 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 consécutifs de la souris
La valeur par défaut sous X11 est de 400 millisecondes. Sous Windows et Mac OS, c'est la valeur définie par le 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, nécessaire pour distinguer une simple 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é définit la distance minimale requise pour qu'une opération de glisser-déposer puisse démarrer.
Si votre application prend en charge le glisser-déposer et que vous souhaitez lancer une opération de glisser-déposer une fois que l'utilisateur a déplacé le curseur sur une certaine distance en maintenant un 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, lors de l'événement de déplacement de la souris) est ` currentPos`, vous pouvez déterminer si un glissement doit être lancé à l'aide d'un code similaire à 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 plateforme n’en fournit pas une autre) est de 10 pixels.
Fonctions d'accès :
| int | startDragDistance() |
| void | setStartDragDistance(int l) |
Voir également startDragTime(), QPoint::manhattanLength() et Glisser-déposer.
startDragTime : int
Cette propriété spécifie la durée, en millisecondes, pendant laquelle un bouton de souris doit rester enfoncé avant qu'une opération de glisser-déposer ne commence
Si votre application prend en charge le glisser-déposer et que vous souhaitez lancer une opération de glisser-déposer après que l'utilisateur a maintenu un bouton de souris enfoncé pendant un certain temps, vous devez utiliser la valeur de cette propriété comme délai.
Qt utilise également ce délai en interne, par exemple dans QTextEdit et QLineEdit, pour lancer un glissement.
La valeur par défaut est de 500 ms.
Fonctions d'accès :
| int | startDragTime() |
| void | setStartDragTime(int ms) |
Voir également startDragDistance() et Glisser-déposer.
styleSheet : QString
Cette propriété contient la feuille de style de l'application
La feuille de style de l'application s'applique à tous les widgets de l'application, en plus de toute feuille de style définie sur des widgets individuels. Consultez la section « Feuilles de style Qt » pour connaître les règles de cascade.
La définition de cette propriété remplace le style de l’application par un style de feuille de style qui englobe l’ style actuelle, et chaque modification ultérieure redéfinit tous les widgets de l’application. Définissez la feuille de style une seule fois, avant l’affichage de la première fenêtre, et ne l’utilisez pas pour changer de thème à l’exécution. Pour savoir quand utiliser les feuilles de style, consultez la section Approches de mise en forme pour l’ Qt Widgets.
Si la valeur est une URL de type file:///, Qt charge la feuille de style à partir du fichier nommé et résout les URL relatives qu’elle contient, telles que les références d’images, par rapport au répertoire de ce fichier. Seule la feuille de style de l’application accepte une URL de type file:///; QWidget::styleSheet n’en accepte pas.
Par défaut, cette propriété est 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 ; cette option définit cette propriété sur une URL de type file:/// pour le fichier donné.
Fonctions d’accès :
| QString | styleSheet() const |
| void | setStyleSheet(const QString &sheet) |
Voir également QWidget::styleSheet, setStyle(), les feuilles de style Qt et les approches de mise en forme pour Qt Widgets.
wheelScrollLines : int
Cette propriété détermine le nombre de lignes à faire défiler dans un widget lorsque l'on fait tourner la molette de la souris.
Si la valeur dépasse le nombre de lignes visibles du widget, celui-ci doit interpréter l'opération de défilement comme un seul déplacement 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 du paramètre « scroll mode » du widget. Le défilement d’une ligne peut correspondre à « scroll one item » ou à « scroll one pixel ».
Par défaut, cette propriété a la valeur 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êtrage et crée un objet d'application à l'aide des arguments de ligne de commande indiqués dans argc sur argv.
Avertissement : les données auxquelles renvoient argc et argv doivent rester valides pendant toute la durée de vie de l’objet QApplication. De plus, 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 instancié avant tout paint devices (y compris les widgets, les pixmaps, les bitmaps, etc.).
Remarque : les paramètres argc et argv sont susceptibles d’être modifiés, car Qt supprime les arguments de ligne de commande qu’il reconnaît.
Tous les programmes Qt prennent automatiquement en charge 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 disposez de styles supplémentaires sous forme de plugins, ceux-ci seront disponibles via 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’environnementQT_STYLE_OVERRIDE. - -style style: équivaut à l’option ci-dessus.
- -stylesheet= feuille de style, définit la feuille de style de l'application. La valeur doit être un chemin d'accès à un fichier contenant la feuille de style.
Remarque : les URLrelatives dans le fichier de feuille de style sont relatives au chemin d’accès de ce fichier.
- -stylesheet feuille-de-style: correspond à ce qui est indiqué ci-dessus.
- -widgetcount, affiche un message de débogage à la fin indiquant le nombre de widgets non détruits et le nombre maximal de widgets ayant existé simultanément
- -reverse, définit le sens de mise en page de l'application sur Qt::RightToLeft
- -qmljsdebugger=, active le débogueur QML/JS sur un port spécifié. La valeur doit être au format port:1234[,block], où block est facultatif et force l'application à attendre qu'un débogueur s'y connecte.
Voir également QCoreApplication::arguments().
[virtual noexcept] QApplication::~QApplication()
Libère toutes les ressources système liées aux fenêtres qui avaient été allouées par cette application. Définit la variable globale qApp sur nullptr.
[static slot] void QApplication::aboutQt()
Affiche une boîte de message simple concernant Qt. Le message indique le numéro de version de Qt utilisé par l'application.
Cette fonction est utile pour l'intégrer dans le menu « Help » d'une application, comme le montre l'exemple 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 niveau supérieur, sous-classe de ` QDialog `, dont le paramètre `modal` du constructeur est défini sur `true`. Un widget modal doit être fermé avant que l'utilisateur puisse poursuivre l'exécution d'autres parties du programme.
Les widgets modaux sont organisés en pile. Cette fonction renvoie le widget modal actif situé au sommet de la pile.
Voir également ` activePopupWidget()` et ` topLevelWidgets()`.
[static] QWidget *QApplication::activePopupWidget()
Renvoie le widget contextuel actif.
Un widget contextuel est un widget spécial de niveau supérieur qui active l'indicateur « Qt::WType_Popup », comme par exemple le widget QMenu. Lorsque l'application ouvre un widget contextuel, tous les événements sont envoyés vers ce widget. Les widgets normaux et modaux ne sont pas accessibles tant que le widget contextuel n'est pas fermé.
Seuls d'autres widgets contextuels peuvent être ouverts lorsqu'un widget contextuel est affiché. Les widgets contextuels sont organisés en pile. Cette fonction renvoie le widget contextuel actif situé au sommet de la pile.
Voir également activeModalWidget() et topLevelWidgets().
[static] QWidget *QApplication::activeWindow()
Renvoie la fenêtre de niveau supérieur de l'application sur laquelle se trouve le focus du clavier, ou ` nullptr ` si aucune fenêtre d'application n'a le focus. La fonction `activeWindow()` peut renvoyer une valeur même s'il n'y a pas de ` focusWidget()` (), par exemple si aucun widget de cette fenêtre n'accepte les événements clavier.
Voir également QWidget::setFocus(), QWidget::hasFocus() et focusWidget().
[static] void QApplication::alert(QWidget *widget, int msec = 0)
Affiche une alerte pour widget si la fenêtre n'est pas active. L'alerte reste affichée pendant msec millisecondes. Si msec est égal à zéro (valeur par défaut), l'alerte reste affichée indéfiniment jusqu'à ce que la fenêtre redevienne active.
Actuellement, cette fonction n'a aucun effet sous Qt pour Linux embarqué.
Sous macOS, cela fonctionne davantage au niveau de l’application et provoque le rebond de l’icône de l’application dans le Dock.
Sous Windows, cela provoque le clignotement temporaire de l’entrée de la fenêtre dans la barre des tâches. 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, cela entraîne le marquage de la fenêtre comme « nécessitant une attention particulière » ; pour que cela fonctionne, la fenêtre ne doit pas être masquée (c'est-à-dire qu'aucune fonction hide() ne doit être appelée sur celle-ci, mais qu'elle doit rester visible d'une manière ou d'une autre).
[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 masqués.
Exemple :
void updateAllWidgets()
{
const QWidgetList allWidgets = QApplication::allWidgets();
for (QWidget *widget : allWidgets)
widget->update();
}Voir également topLevelWidgets() et QWidget::isVisible().
[static] void QApplication::beep()
Fait retentir la sonnerie en utilisant le volume et le son par défaut. Cette fonction n' est pas disponible dans Qt pour Linux embarqué.
[static slot] void QApplication::closeAllWindows()
Ferme toutes les fenêtres de niveau supérieur.
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 refuse l’événement de fermeture. L’application se ferme lorsque la dernière fenêtre a été fermée avec succès, sauf si quitOnLastWindowClosed est défini sur false. Pour déclencher la fermeture de l’application à partir, par exemple, d’un menu, utilisez QCoreApplication::quit() à la place 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 d'événements principale et attend que la fonction ` exit()` soit appelée, puis renvoie la valeur qui a été définie dans ` exit()` (qui est égale à 0 si ` exit()` est appelée via ` quit()`).
Il est nécessaire d’appeler cette fonction pour lancer la gestion des événements. La boucle d’événements principale reçoit les événements du système de fenêtrage et les distribue aux widgets de l’application.
En règle générale, aucune interaction avec l’utilisateur ne peut avoir lieu avant l’appel à `exec()`. À titre d’exception, les widgets modaux tels que ` QMessageBox ` peuvent être utilisés avant l’appel à `exec()`, car les widgets modaux appellent eux-mêmes `exec()` pour lancer une boucle d’événements locale.
Pour que votre application effectue un traitement en veille, c'est-à-dire qu'elle exécute une fonction spécifique lorsqu'il n'y a pas d'événements en attente, utilisez un QChronoTimer avec un délai d'expiration de 0 ns. Des schémas de traitement en veille plus avancés peuvent être mis en œuvre à l'aide de processEvents().
Nous vous recommandons de connecter le code de nettoyage au signal aboutToQuit(), plutôt que de l’intégrer à la fonction main() de votre application. En effet, sur certaines plateformes, l’appel à QApplication::exec() peut ne pas renvoyer de résultat. Par exemple, sous 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’ y a donc aucune garantie que l’application ait 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 à `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 détient le focus clavier passe de l'état « old » à l'état « now », c'est-à-dire lorsque l'utilisateur appuie sur la touche Tab, clique dans un widget ou change de fenêtre active. Les états « old » et « now » peuvent tous deux être « nullptr ».
Le signal est émis une fois que les deux widgets ont été informés du changement via QFocusEvent.
Voir également QWidget::setFocus(), QWidget::clearFocus() et Qt::FocusReason.
[static] QWidget *QApplication::focusWidget()
Renvoie le widget de l'application sur lequel se trouve le focus du clavier, ou ` nullptr ` si aucun widget de cette application n'a le focus.
Voir également QWidget::setFocus(), QWidget::hasFocus(), activeWindow() et focusChanged().
[static] QFont QApplication::font()
Renvoie la police par défaut de l'application.
Voir également setFont(), fontMetrics() et QWidget::font().
[static] QFont QApplication::font(const QWidget *widget)
Renvoie la police par défaut de l'widget. Si aucune police par défaut n'a été enregistrée pour la classe widget, elle renvoie la police par défaut de sa superclasse enregistrée la plus proche.
Il s'agit d'une fonction surchargée.
Voir également fontMetrics(), setFont() et QWidget::setFont().
[static] QFont QApplication::font(const char *className)
Renvoie la police utilisée pour les widgets de l'className donné.
Il s'agit d'une fonction surchargée.
Voir également setFont() et QWidget::font().
[static] bool QApplication::isEffectEnabled(Qt::UIEffect effect)
Renvoie « true » si l'option « effect » est activée ; sinon, renvoie « false ».
Par défaut, Qt tentera 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.
[override virtual] bool QApplication::notify(QObject *receiver, QEvent *e)
Réimplémente : QGuiApplication::notify(QObject *object, QEvent *event).
[static] QPalette QApplication::palette(const QWidget *widget)
Si un objet ` widget ` est passé en paramètre, 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'existe pas de palette spécifique pour certains types de widgets, mais il existe une exception notable : le menu contextuel sous Windows, si l'utilisateur a défini une couleur d'arrière-plan spécifique 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'className donné.
Il s'agit d'une fonction surchargée.
Voir également setPalette() et QWidget::palette().
[static] void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable = true)
Active l'effet d'interface utilisateur « effect » si la valeur de ` enable ` est « true » ; dans le cas contraire, 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 également isEffectEnabled(), Qt::UIEffect et setDesktopSettingsAware().
[static] void QApplication::setFont(const QFont &font, const char *className = nullptr)
Modifie la police par défaut de l'application pour « font ». Si l'on passe « className », la modification ne s'applique qu'aux classes héritant 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êtrage. Elle peut varier en fonction à la fois de la version du système de fenêtrage et des paramètres régionaux. Cette fonction vous permet de remplacer la police par défaut ; toutefois, cela peut s’avérer déconseillé car, par exemple, certains paramètres régionaux nécessitent des polices très grandes pour prendre en charge leurs caractères spéciaux.
Avertissement : n’utilisez pas cette fonction conjointement avec les feuilles de style Qt. La police d’une application peut être personnalisée à l’aide de la propriété « font » de la feuille de style. Pour définir une police en gras pour tous les QPushButton, définissez la propriété styleSheet() de l’application comme suit : «QPushButton { font: bold } »
Voir également font(), fontMetrics() et QWidget::setFont().
[static] void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)
Modifie la palette de l'application pour qu'elle utilise « palette ».
Si className est passé, la modification s'applique uniquement aux widgets héritant de className (comme indiqué par QObject::inherits()). Si className est laissé à 0, la modification affecte tous les widgets, remplaçant ainsi toute palette spécifique à une classe précédemment définie.
La palette peut être modifiée en fonction du style d'interface graphique actuel via QStyle::polish().
Avertissement : n'utilisez pas cette fonction conjointement avec les feuilles de style Qt. Lorsque vous utilisez des feuilles de style, la palette d'un widget peut être personnalisée à l'aide des propriétés « color », « background-color », « selection-color », « selection-background-color » et « alternate-background-color ».
Remarque : certains styles n’utilisent pas la palette pour tous les tracés, par exemple s’ils ont recours à 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 sur style. La propriété de l'objet de style est transférée à QApplication; ainsi, QApplication supprimera l'objet de style à la fermeture 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"));Lors du changement de style de l’application, la palette de couleurs est réinitialisé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 entièrement conformes au guide de style.
Définir le style avant qu’une palette n’ait été définie, c’est-à-dire avant de créer ` QApplication`, entraînera l’utilisation de ` QStyle::standardPalette()` par l’application pour la palette.
Voir également style(), QStyle, setPalette() et desktopSettingsAware().
[static] QStyle *QApplication::setStyle(const QString &style)
Demande un objet ` QStyle ` pour ` style ` auprès de ` QStyleFactory`.
La chaîne doit correspondre à l'une des valeurs de QStyleFactory::keys(), généralement « windows », « windowsvista », « fusion » ou « macos ». Les noms de style ne sont pas sensibles à la casse.
Renvoie nullptr si un style inconnu est passé ; sinon, l’objet QStyle renvoyé est défini comme style d’interface graphique de l’application.
Avertissement : pour garantir que le style de l’application est correctement défini, il est préférable d’appeler cette fonction avant le constructeur d’ 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 niveau supérieur situé à l'point indiquée ; renvoie « nullptr » si ce widget n'existe pas.
[static] QWidget *QApplication::topLevelAt(int x, int y)
Renvoie le widget de niveau supérieur situé au point (x, y) ; renvoie 0 s'il n'existe aucun widget correspondant.
Il s'agit d'une fonction surchargée.
[static] QWidgetList QApplication::topLevelWidgets()
Renvoie une liste des widgets de niveau supérieur (fenêtres) de l'application.
Remarque : certains widgets de premier niveau peuvent être masqués, par exemple une info-bulle si aucune n'est actuellement affichée.
Exemple :
void showAllHiddenTopLevelWidgets()
{
const QWidgetList topLevelWidgets = QApplication::topLevelWidgets();
for (QWidget *widget : topLevelWidgets) {
if (widget->isHidden())
widget->show();
}
}Voir également allWidgets(), QWidget::isWindow() et QWidget::isHidden().
[static] QWidget *QApplication::widgetAt(const QPoint &point)
Renvoie le widget situé à 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 également QCursor::pos(), QWidget::grabMouse() et QWidget::grabKeyboard().
[static] QWidget *QApplication::widgetAt(int x, int y)
Renvoie le widget situé à 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 des macros
qApp
Pointeur global pointant vers l'objet d'application unique. Il équivaut à la fonction ` QCoreApplication::instance()`, mais est converti en pointeur de type ` QApplication ` ; il n'est donc valide que lorsque l'objet d'application unique est de type ` 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.