Icônes dans les contrôles Qt Quick
Dans les contrôles Qt Quick, les boutons, les délégués d'éléments et les éléments de menu peuvent présenter une icône en plus d'une étiquette de texte.
Utilisation des icônes
AbstractButton et Action fournissent les propriétés suivantes qui permettent de définir les icônes :
icon.nameicon.sourceicon.widthicon.heighticon.coloricon.cache
Les icônes thématiques sont référencées par un nom, et les icônes ordinaires par une URL source. Les propriétés icon.name et icon.source peuvent être définies pour garantir qu'une icône sera toujours trouvée. Si l'icône est trouvée dans le thème, elle sera toujours utilisée, même si icon.source est également défini. Si l'icône n'est pas trouvée dans le thème, icon.source sera utilisé à la place.
Button {
icon.name: "edit-cut"
icon.source: "images/cut.png"
}Chaque styleQt Quick Controls 2 demande une taille et une couleur d'icône par défaut conformément à ses directives, mais il est possible de les remplacer en définissant les propriétés icon.width, icon.height et icon.color.
L'image chargée par une icône dont les propriétés width et height ne sont pas définies dépend du type d'icône utilisé. Pour les icônes thématiques, c'est la taille la plus proche qui est choisie. Pour les icônes ordinaires, le comportement est le même que celui de la propriété sourceSize de Image.
La couleur de l'icône est spécifiée par défaut afin qu'elle corresponde à la couleur du texte dans les différents états. Pour utiliser une icône avec les couleurs d'origine, définissez la couleur sur "transparent".
Button {
icon.color: "transparent"
icon.source: "images/logo.png"
}Pour les boutons, la propriété display peut être utilisée pour contrôler la manière dont l'icône et le texte sont affichés dans le bouton.
La propriété icon.cache détermine si l'image de l'icône est mise en cache ou non. Pour plus d'informations, voir cache.
Thèmes d'icônes
Les thèmes d'icônes conformes doivent suivre la spécification de thème d'icônes de freedesktop, qui peut être obtenue ici : http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html.
Traditionnellement, seuls Linux et UNIX prennent en charge les thèmes d'icônes au niveau de la plate-forme, mais il est possible d'intégrer un thème d'icônes conforme dans une application pour utiliser des icônes thématiques sur n'importe quelle plate-forme.
Le site icon theme search paths par défaut dépend de la plate-forme. Sous Linux et UNIX, le chemin de recherche utilisera la variable d'environnement XDG_DATA_DIRS si elle est disponible. Toutes les plateformes disposent du répertoire de ressources :/icons comme solution de repli. Les chemins de recherche des thèmes d'icônes personnalisés peuvent être définis à l'aide de QIcon::setThemeSearchPaths().
L'exemple suivant intègre un thème d'icônes appelé mytheme dans les ressources de l'application à l'aide du système de ressources de Qt.
<RCC>
<qresource prefix="/">
<file>icons/mytheme/index.theme</file>
<file>icons/mytheme/32x32/myicon.png</file>
<file>icons/mytheme/32x32@2/myicon.png</file>
</qresource>
</RCC>Le fichier index.theme décrit les attributs généraux du thème d'icônes et répertorie les répertoires d'icônes disponibles :
[Icon Theme] Name=mytheme Comment=My Icon Theme Directories=32x32,32x32@2 [32x32] Size=32 Type=Fixed [32x32@2] Size=32 Scale=2 Type=Fixed
Pour utiliser le thème d'icônes intégré, une application doit appeler QIcon::setThemeName() avant de charger le fichier QML principal :
#include <QGuiApplication> #include <QQmlApplicationEngine> #include <QIcon> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QIcon::setThemeName("mytheme"); // <-- QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); }
Il est désormais possible d'utiliser les icônes nommées du thème d'icônes intégré sans avoir à spécifier de source de secours :
Button {
icon.name: "myicon"
}L'exemple de la galerie et la démo Wearable fournissent des applications exécutables complètes avec un thème d'icônes intégré.
© 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.