Style Imagine
Le style Imagine est basé sur des images configurables. Plus d'informations...
| Déclaration d'importation : | import QtQuick.Controls.Imagine |
| Depuis : | Qt 5.10 |
Propriétés attachées
- path: chaîne de caractères
Description détaillée
Le style Imagine est basé sur des images. Le style est livré avec un ensemble d'images par défaut, mais les images peuvent être facilement modifiées en fournissant un répertoire d'images utilisant une convention de nommage prédéfinie.

Le style Imagine avec les images par défaut
Pour exécuter une application avec le style Imagine, voir Utilisation des styles dans les contrôles Qt Quick .
Noms de fichiers
Les fichiers d'images sont nommés selon la convention suivante :
<control>-<element>-<states>
Les sections <control> et <element> sont obligatoires, mais la section <states> est facultative. Par exemple, si un seul fichier nommé "button-background.9.png" est fourni pour Button, il sera utilisé pour chaque État pris en charge par Button. Il appartient au développeur de décider de l'ensemble des états pour lesquels il fournira des images. Toutefois, il est recommandé de fournir des images pour les états de contrôle les plus courants, tels que disabled, pressed, etc. Cela garantit que les contrôles interactifs se comportent visuellement comme l'utilisateur final s'y attend.
Référence de l'élément
Le tableau suivant répertorie les éléments pris en charge pour chaque contrôle, ainsi que les états possibles pour cet élément et l'extension de fichier attendue. Un élément est une image qui représente une certaine partie visuelle du contrôle. Par exemple, l'élément "background" de Button représente son élément background.
| Contrôle | Élément | États | Extension |
|---|---|---|---|
| ApplicationWindow | arrière-plan | actif | .9.png (ou .png) |
| BusyIndicator | animation | désactivée, en cours, en miroir, survolée | .webp |
| arrière-plan | comme ci-dessus | .webp | |
| Button | arrière-plan | désactivé, pressé, vérifié, vérifiable, focalisé, mis en évidence, plat, reflété, survolé | .9.png |
| CheckBox | arrière-plan | désactivé, enfoncé, coché, partiellement coché, focalisé, miroir, survolé | .9.png (ou .png) |
| indicateur | idem que ci-dessus | .png | |
| CheckDelegate | arrière-plan | désactivé, appuyé, coché, partiellement coché, focalisé, mis en évidence, reflété, survolé | .9.png (ou .png) |
| indicateur | idem que ci-dessus | .png | |
| ComboBox | arrière-plan | désactivé, appuyé, modifiable, ouvert, focalisé, reflété, survolé, plat | .9.png (ou .png) |
| indicateur | idem que ci-dessus | .png | |
| popup | comme ci-dessus | .9.png (ou .png) | |
| DelayButton | arrière-plan | désactivé, pressé, vérifié, vérifiable, focalisé, reflété, survolé | .9.png (ou .png) |
| progression | idem que ci-dessus | .9.png (ou .png) | |
| masque | idem que ci-dessus | .9.png (ou .png) | |
| Dial | arrière-plan1 | désactivé, appuyé, focalisé, reflété, survolé | .9.png (ou .png) |
| poignée | idem que ci-dessus | .9.png (ou .png) | |
| Dialog | arrière-plan | modal, dim | .9.png (ou .png) |
| titre | idem que ci-dessus | .9.png (ou .png) | |
| incrustation | modal | .9.png (ou .png) | |
| DialogButtonBox | arrière-plan | désactivé, miroir | .9.png (ou .png) |
| Drawer | arrière-plan | modal, dim, top, left, right, bottom | .9.png (ou .png) |
| superposition | modal | .9.png (ou .png) | |
| Frame | arrière-plan | désactivé, miroir | .9.png (ou .png) |
| GroupBox | arrière-plan | désactivé, miroir | .9.png (ou .png) |
| titre | même que ci-dessus | .9.png (ou .png) | |
| ItemDelegate | arrière-plan | désactivé, appuyé, focalisé, mis en évidence, reflété, survolé | .9.png (ou .png) |
| Label | arrière-plan | désactivé, réfléchi, survolé | .9.png (ou .png) |
| Menu | arrière-plan | modal, dim | .9.png (ou .png) |
| superposition | modal | .9.png (ou .png) | |
| MenuItem | flèche | désactivée, pressée, cochée, focalisée, mise en évidence, reflétée, survolée | .png |
| arrière-plan | comme ci-dessus | .9.png (ou .png) | |
| indicateur | comme ci-dessus | .png | |
| MenuSeparator | arrière-plan | désactivé, en miroir | .9.png (ou .png) |
| séparateur | comme ci-dessus | .9.png (ou .png) | |
| Page | arrière-plan | désactivé, en miroir | .9.png (ou .png) |
| PageIndicator | arrière-plan | désactivé, réfléchi, survolé | .9.png (ou .png) |
| délégué | désactivé, pressé, courant, miroir, survolé | .png | |
| Pane | arrière-plan | désactivé, reflété | .9.png (ou .png) |
| Popup | arrière-plan | modal, dim | .9.png (ou .png) |
| superposition | modal | .9.png (ou .png) | |
| ProgressBar | animation | désactivée, miroir, survolée | .png |
| arrière-plan | désactivé, indéterminé, miroir, survolé | .9.png (ou .png) | |
| masque | idem que ci-dessus | .9.png (ou .png) | |
| progression | idem que ci-dessus | .9.png (ou .png) | |
| RadioButton | arrière-plan | désactivé, appuyé, coché, focalisé, reflété, survolé | .9.png (ou .png) |
| indicateur | idem que ci-dessus | .png | |
| RadioDelegate | arrière-plan | désactivé, appuyé, coché, focalisé, mis en évidence, reflété, survolé | .9.png (ou .png) |
| indicateur | idem que ci-dessus | .png | |
| RangeSlider | arrière-plan | vertical, horizontal, désactivé, focalisé, miroir, survolé | .9.png (ou .png) |
| RangeSlider | progression | idem que ci-dessus | .9.png (ou .png) |
| poignée | premier, second, vertical, horizontal, désactivé, appuyé, focalisé, reflété, survolé | .png | |
| RoundButton | arrière-plan | désactivé, pressé, coché, contrôlable, focalisé, mis en évidence, plat, réfléchi, survolé | .9.png (ou .png) |
| ScrollBar | arrière-plan | vertical, horizontal, désactivé, interactif, appuyé, reflété, survolé | .9.png (ou .png) |
| poignée | idem que ci-dessus | .9.png (ou .png) | |
| ScrollIndicator | arrière-plan | vertical, horizontal, désactivé, miroir, survolé | .9.png (ou .png) |
| poignée | idem que ci-dessus | .9.png (ou .png) | |
| ScrollView | arrière-plan | désactivé, en miroir | .9.png (ou .png) |
| Slider | arrière-plan | vertical, horizontal, désactivé, appuyé, focalisé, réfléchi, survolé | .9.png (ou .png) |
| poignée | idem que ci-dessus | .9.png (ou .png) | |
| progression | idem que ci-dessus | .9.png (ou .png) | |
| SpinBox | arrière-plan | désactivé, modifiable, focalisé, reflété, survolé | .9.png (ou .png) |
| éditeur | désactivé, focalisé, miroir, survolé | .9.png (ou .png) | |
| indicateur | haut, bas, désactivé, éditable, pressé, focalisé, reflété, survolé | .9.png (ou .png) | |
| StackView | arrière-plan | désactivé, réfléchi | .9.png (ou .png) |
| SwipeDelegate | arrière-plan | désactivé, appuyé, focalisé, mis en évidence, reflété, survolé | .9.png (ou .png) |
| SwipeView | arrière-plan | vertical, horizontal, désactivé, interactif, focalisé, miroir | .9.png (ou .png) |
| Switch | arrière-plan | désactivé, appuyé, coché, focalisé, miroir, survolé | .9.png (ou .png) |
| poignée | idem que ci-dessus | .9.png (ou .png) | |
| indicateur | idem que ci-dessus | .9.png (ou .png) | |
| SwitchDelegate | arrière-plan | désactivé, appuyé, coché, focalisé, mis en évidence, reflété, survolé | .9.png (ou .png) |
| poignée | idem que ci-dessus | .9.png (ou .png) | |
| indicateur | idem que ci-dessus | .9.png (ou .png) | |
| TabBar | arrière-plan | désactivé, en-tête, pied de page, miroir | .9.png (ou .png) |
| TabButton | arrière-plan | désactivé, appuyé, coché, focalisé, réfléchi, survolé | .9.png (ou .png) |
| TextArea | arrière-plan | désactivé, focalisé, miroir, survolé | .9.png (ou .png) |
| TextField | arrière-plan | désactivé, focalisé, miroir, survolé | .9.png (ou .png) |
| ToolBar | arrière-plan | désactivé, en-tête, pied de page, miroir | .9.png (ou .png) |
| ToolButton | arrière-plan | désactivé, pressé, vérifié, vérifiable, focalisé, mis en évidence, plat, reflété, survolé | .9.png (ou .png) |
| ToolSeparator | arrière-plan | vertical, horizontal, désactivé, réfléchi | .9.png (ou .png) |
| séparateur | comme ci-dessus | .9.png (ou .png) | |
| ToolTip | arrière-plan | .9.png (ou .png) | |
| Tumbler | arrière-plan | désactivé, focalisé, miroir, survolé | .9.png (ou .png) |
Note : 1) Le cadran de style Imagine ne prend pas encore en charge les propriétés startAngle et endAngle qui ont été introduites dans Qt 6.6, et utilise à la place une image d'arrière-plan fixe.
Exemples d'actifs
Le tableau suivant présente des exemples d'éléments (tirés des éléments par défaut du style Imagine) pour tous les contrôles. La liste n'est pas exhaustive, car tous les éléments n'ont pas besoin d'assets, mais elle peut servir de guide lors de la création de vos propres assets.
Le modèle à partir duquel ces éléments ont été exportés est disponible en tant que projet Sketch.
| Contrôle | Élément | États | Actif | Notes |
|---|---|---|---|---|
| ApplicationWindow | arrière-plan |
| Voir note de bas de page 1 | |
| superposition |
| Voir note de bas de page 1 | ||
| superposition | modal |
| Voir note de bas de page 1 | |
| Button | arrière-plan |
| ||
| arrière-plan | handicapés |
| ||
| arrière-plan | focalisé |
| ||
| arrière-plan | pressé |
| ||
| arrière-plan | vérifié |
| ||
| arrière-plan | vérifié, désactivé |
| ||
| arrière-plan | vérifié, ciblé |
| ||
| arrière-plan | vérifié, survolé |
| ||
| arrière-plan | surligné |
| ||
| arrière-plan | en surbrillance, désactivé |
| ||
| arrière-plan | mis en évidence, focalisé |
| ||
| arrière-plan | mis en évidence, survolé |
| ||
| arrière-plan | en surbrillance, appuyé |
| ||
| arrière-plan | en surbrillance, coché |
| ||
| arrière-plan | survolé |
| ||
| arrière-plan | plat |
| ||
| arrière-plan | plat, désactivé |
| ||
| arrière-plan | plat, survolé |
| ||
| arrière-plan | plat, appuyé |
| ||
| arrière-plan | plat, coché |
| ||
| CheckBox | indicateur |
| ||
| indicateur | désactivé |
| ||
| indicateur | appuyé |
| ||
| indicateur | vérifié |
| ||
| indicateur | vérifié, pressé |
| ||
| indicateur | coché, survolé |
| ||
| indicateur | coché, focalisé |
| ||
| indicateur | partiellement, vérifié |
| ||
| indicateur | partiellement, vérifié, pressé |
| ||
| indicateur | partiellement, vérifié, ciblé |
| ||
| indicateur | partiellement, coché, survolé |
| ||
| indicateur | focalisé |
| ||
| indicateur | survolé |
| ||
| CheckDelegate | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | pressé |
| ||
| arrière-plan | focalisé |
| ||
| arrière-plan | survolé |
| ||
| indicateur |
| |||
| indicateur | désactivé |
| ||
| indicateur | appuyé |
| ||
| indicateur | vérifié |
| ||
| indicateur | vérifié, pressé |
| ||
| indicateur | vérifié, focalisé |
| ||
| indicateur | coché, survolé |
| ||
| indicateur | ciblé |
| ||
| indicateur | survolé |
| ||
| indicateur | partiellement, coché |
| ||
| indicateur | partiellement, coché, pressé |
| ||
| indicateur | partiellement, vérifié, focalisé |
| ||
| indicateur | partiellement, coché, survolé |
| ||
| indicateur | survolé |
| ||
| ComboBox | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | focalisé |
| ||
| arrière-plan | survolé |
| ||
| arrière-plan | enfoncé |
| ||
| arrière-plan | ouvert |
| ||
| arrière-plan | éditable |
| ||
| arrière-plan | éditable, ciblé |
| ||
| arrière-plan | éditable, désactivé |
| ||
| indicateur |
| |||
| indicateur | désactivé |
| ||
| indicateur | modifiable |
| ||
| indicateur | modifiable, désactivé |
| ||
| indicateur | éditable, miroir |
| ||
| indicateur | éditable, miroir, désactivé |
| ||
| fenêtre contextuelle |
| |||
| DelayButton | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | désactivé, vérifié |
| ||
| arrière-plan | ciblé |
| ||
| arrière-plan | enfoncé |
| ||
| arrière-plan | vérifié |
| ||
| arrière-plan | vérifié, focalisé |
| ||
| arrière-plan | coché, survolé |
| ||
| arrière-plan | survolé |
| ||
| progression |
| |||
| progression | désactivé |
| ||
| masque |
| |||
| Dial | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | focalisé |
| ||
| poignée |
| |||
| poignée | désactivé |
| ||
| poignée | ciblée |
| ||
| poignée | focalisée, pressée |
| ||
| poignée | focalisé, survolé |
| ||
| poignée | appuyé |
| ||
| poignée | survolée |
| ||
| Dialog | arrière-plan |
| ||
| superposition |
| Voir note de bas de page 1 | ||
| superposition | modal |
| Voir note de bas de page 1 | |
| DialogButtonBox | arrière-plan |
| ||
| Drawer | arrière-plan | à gauche |
| |
| arrière-plan | droite |
| ||
| arrière-plan | haut |
| ||
| arrière-plan | en bas |
| ||
| superposition |
| Voir note de bas de page 1 | ||
| superposition | modal |
| Voir note de bas de page 1 | |
| Frame | arrière-plan |
| ||
| GroupBox | arrière-plan |
| ||
| titre |
| |||
| ItemDelegate | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | enfoncé |
| ||
| arrière-plan | focalisé |
| ||
| arrière-plan | survolé |
| ||
| arrière-plan | mis en évidence |
| ||
| Menu | arrière-plan |
| ||
| MenuItem | arrière-plan |
| ||
| arrière-plan | en surbrillance |
| ||
| flèche |
| |||
| flèche | reflété |
| ||
| flèche | désactivée |
| ||
| flèche | en miroir, désactivé |
| ||
| indicateur |
| |||
| indicateur | désactivé |
| ||
| indicateur | enfoncé |
| ||
| indicateur | vérifié |
| ||
| indicateur | vérifié, pressé |
| ||
| indicateur | vérifié, focalisé |
| ||
| indicateur | coché, survolé |
| ||
| indicateur | focalisé |
| ||
| indicateur | survolé |
| ||
| MenuSeparator | séparateur |
| ||
| Page | arrière-plan |
| Voir note de bas de page 1 | |
| PageIndicator | délégué |
| ||
| délégué | désactivé |
| ||
| délégué | désactivé, actuel |
| ||
| délégué | pressé |
| ||
| délégué | actuel |
| ||
| Pane | arrière-plan |
| ||
| Popup | arrière-plan |
| Voir note de bas de page 1 | |
| superposition |
| Voir note de bas de page 1 | ||
| superposition | modal |
| ||
| ProgressBar | arrière-plan |
| ||
| progression |
| |||
| masque |
| |||
| RadioButton | indicateur |
| ||
| indicateur | désactivé |
| ||
| indicateur | pressé |
| ||
| indicateur | vérifié |
| ||
| indicateur | vérifié, focalisé |
| ||
| indicateur | coché, survolé |
| ||
| indicateur | coché, appuyé |
| ||
| indicateur | focalisé |
| ||
| indicateur | survolé |
| ||
| RadioDelegate | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | enfoncé |
| ||
| arrière-plan | focalisé |
| ||
| arrière-plan | survolé |
| ||
| indicateur |
| |||
| indicateur | désactivé |
| ||
| indicateur | indicateur enfoncé |
| ||
| indicateur | vérifié |
| ||
| indicateur | vérifié, focalisé |
| ||
| indicateur | coché, survolé |
| ||
| indicateur | coché, appuyé |
| ||
| indicateur | focalisé |
| ||
| indicateur | survolé |
| ||
| RangeSlider | arrière-plan | vertical |
| |
| arrière-plan | horizontal |
| ||
| progression | vertical |
| ||
| progression | vertical, désactivé |
| ||
| progression | horizontal |
| ||
| progression | horizontale, désactivée |
| ||
| poignée |
| |||
| poignée | désactivé |
| ||
| poignée | focalisé |
| ||
| poignée | focalisé, survolé |
| ||
| poignée | focalisé, appuyé |
| ||
| poignée | survolé |
| ||
| poignée | enfoncée |
| ||
| RoundButton | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | désactivé, vérifié |
| ||
| arrière-plan | ciblé |
| ||
| arrière-plan | enfoncé |
| ||
| arrière-plan | vérifié |
| ||
| arrière-plan | vérifié, focalisé |
| ||
| arrière-plan | coché, survolé |
| ||
| arrière-plan | mis en évidence |
| ||
| arrière-plan | en surbrillance, appuyé |
| ||
| arrière-plan | en surbrillance, focalisé |
| ||
| arrière-plan | mis en évidence, survolé |
| ||
| arrière-plan | survolé |
| ||
| ScrollBar | poignée |
| ||
| poignée | désactivé |
| ||
| poignée | interactive |
| ||
| poignée | interactive, désactivée |
| ||
| poignée | interactive, pressée |
| ||
| poignée | interactive, survolée |
| ||
| ScrollIndicator | poignée |
| ||
| Slider | arrière-plan | vertical |
| |
| arrière-plan | horizontal |
| ||
| progression | vertical |
| ||
| progression | vertical, désactivé |
| ||
| progression | horizontal |
| ||
| progression | horizontale, désactivée |
| ||
| poignée |
| |||
| poignée | désactivé |
| ||
| poignée | focalisé |
| ||
| poignée | focalisé, survolé |
| ||
| poignée | focalisé, appuyé |
| ||
| poignée | survolé |
| ||
| poignée | enfoncée |
| ||
| SpinBox | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | focalisé |
| ||
| arrière-plan | éditable |
| ||
| indicateur | en haut |
| ||
| indicateur | en haut, désactivé |
| ||
| indicateur | vers le haut, appuyé |
| ||
| indicateur | vers le haut, focalisé |
| ||
| indicateur | vers le haut, en miroir |
| ||
| indicateur | en haut, survolé |
| ||
| indicateur | en haut, modifiable |
| ||
| indicateur | en haut, éditable, pressé |
| ||
| indicateur | en haut, éditable, focalisé |
| ||
| indicateur | vers le haut, éditable, reflété |
| ||
| indicateur | en haut, éditable, survolé |
| ||
| indicateur | vers le bas |
| ||
| indicateur | vers le bas, désactivé |
| ||
| indicateur | vers le bas, appuyé |
| ||
| indicateur | vers le bas, focalisé |
| ||
| indicateur | vers le bas, en miroir |
| ||
| indicateur | vers le bas, survolé |
| ||
| indicateur | vers le bas, éditable |
| ||
| indicateur | en bas, éditable, pressé |
| ||
| indicateur | en bas, éditable, focalisé |
| ||
| indicateur | vers le bas, éditable, reflété |
| ||
| indicateur | en bas, éditable, survolé |
| ||
| SwipeDelegate | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | enfoncé |
| ||
| arrière-plan | focalisé |
| ||
| arrière-plan | survolé |
| ||
| Switch | indicateur |
| ||
| indicateur | désactivé |
| ||
| indicateur | activé |
| ||
| indicateur | vérifié |
| ||
| indicateur | vérifié, focalisé |
| ||
| indicateur | coché, survolé |
| ||
| indicateur | coché, appuyé |
| ||
| indicateur | focalisé |
| ||
| indicateur | survolé |
| ||
| poignée |
| |||
| poignée | désactivé |
| ||
| poignée | enfoncé |
| ||
| SwitchDelegate | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | enfoncé |
| ||
| arrière-plan | focalisé |
| ||
| arrière-plan | survolé |
| ||
| indicateur |
| |||
| indicateur | désactivé |
| ||
| indicateur | activé |
| ||
| indicateur | vérifié |
| ||
| indicateur | vérifié, focalisé |
| ||
| indicateur | coché, survolé |
| ||
| indicateur | coché, appuyé |
| ||
| indicateur | focalisé |
| ||
| indicateur | survolé |
| ||
| poignée |
| |||
| poignée | désactivé |
| ||
| TabBar | arrière-plan |
| ||
| TabButton | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | enfoncé |
| ||
| arrière-plan | vérifié |
| ||
| arrière-plan | survolé |
| ||
| arrière-plan | désactivé, coché |
| ||
| TextArea | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| historique | ciblé |
| ||
| TextField | arrière-plan |
| ||
| arrière-plan | désactivé |
| ||
| arrière-plan | focalisé |
| ||
| ToolBar | arrière-plan |
| ||
| ToolButton | arrière-plan |
| ||
| arrière-plan | désactivé, coché |
| ||
| arrière-plan | focalisé |
| ||
| arrière-plan | pressé |
| ||
| arrière-plan | vérifié |
| ||
| arrière-plan | vérifié, ciblé |
| ||
| arrière-plan | vérifié, survolé |
| ||
| arrière-plan | survolé |
| ||
| ToolSeparator | séparateur | horizontal |
| |
| séparateur | vertical |
| ||
| ToolTip | arrière-plan |
|
1 Une image 1x1 contenant une couleur, étirée pour remplir le contrôle.
Images 9-Patch
Le style Imagine utilise des images en 9 parties pour permettre aux concepteurs de contrôler la façon dont un élément particulier réagit au redimensionnement. Voici un exemple d'image en 9 points représentant une page Button's background, ainsi qu'une version agrandie (pour mieux voir les lignes en 9 points) :

Le contenu de l'image a une largeur de 44 pixels et une hauteur de 32 pixels. Chaque image 9-patch doit être entourée d'une ligne d'un pixel d'épaisseur (collectivement appelée "lignes 9-patch"), de sorte que la taille réelle de l'image est de 46 pixels de large sur 34 pixels de haut. Notez que les lignes de 9 patchs doivent avoir une épaisseur d'un pixel, quel que soit le DPI cible de l'image. Par exemple, les lignes de 9 patchs pour button-background.9.png et button-background@2x.9.png doivent toutes deux avoir une épaisseur d'un pixel.
Les lignes de 9 patchs doivent être noires et les autres zones doivent être transparentes ou blanches :

Zones extensibles
Les lignes de 9 hachures situées sur les bords supérieur et gauche déterminent les parties de l'image qui seront étirées lors d'un redimensionnement.
Vous trouverez ci-dessous des exemples de redimensionnement de l'image 9-patch à une fois et demie sa taille d'origine dans différentes dimensions :

Remarquez que les coins arrondis conservent leur taille d'origine, car ils se trouvent en dehors de la zone des lignes.
Zones de remplissage
Les lignes de 9 points sur les bords droit et inférieur déterminent l'espace disponible pour le contrôle contentItem, ce qui signifie qu'il peut également être considéré comme contrôlant le padding. Pour un diagramme illustrant le remplissage, voir Control Layout.
Vous trouverez ci-dessous d'autres exemples de redimensionnement de l'image 9-patch, mais cette fois-ci en démontrant le fonctionnement des lignes 9-patch de remplissage.

Le site contentItem peut prendre toute la place dont il a besoin dans les zones ombrées. Si les lignes de remplissage sont supprimées, l'image contentItem prendra toute la place dont elle a besoin sans dépasser les zones extensibles.
Zones d'insertion
Dans certains cas, il est nécessaire qu'un contrôle ait une ombre portée, par exemple. Toutefois, si nous devions ajouter une ombre portée au bouton ci-dessus, cela affecterait sa taille, ce qui pose des problèmes à la fois pour la mise en page et pour les limites d'entrée de la souris/du toucher.
Les zones d'insertion permettent de résoudre ce problème en indiquant au contrôle qu'une certaine zone de l'image 9-patch doit se trouver à l'extérieur du contrôle :

Dans l'image ci-dessous, la ligne en pointillés représente la zone cliquable du bouton, ainsi que l'espace qu'il occupera dans une mise en page. L'ombre est marquée par la zone rayée située derrière elle :

Exportation d'images 9-Patch
Divers éditeurs vectoriels et bitmap peuvent être utilisés pour créer des images 9-patch adaptées au style Imagine. Les sections suivantes expliquent brièvement le processus d'exportation pour chaque éditeur, et la dernière section explique comment s'assurer que les images exportées sont conformes à 9-patch.
Affinity Designer
Voir la documentation sur les paramètres d'exportation d' Affinity.
Adobe Illustrator
Voir la documentation sur le panneau d'exportation des actifs d' Adobe.
Adobe Photoshop
Voir la documentation d'Adobe sur la génération d'images à partir de calques.
Inkscape
L'extension d'exportation Inkscape 9-Patch peut être utilisée pour exporter des ressources avec Inkscape.
Esquisse
Voir la documentation sur l 'exportation de Sketch.
Qt Quick Controls fournit également un plugin pour Sketch qui corrige automatiquement l'épaisseur des lignes de 9 patchs après l'exportation des ressources. Pour installer ce fichier, double-cliquez dessus. Une fois que Sketch a confirmé que le plugin d'exportation 9-patch a été installé, le plugin traitera automatiquement les images lors de leur exportation.
Correction des lignes 9-patch
Lors de l'exportation d'images 9-patch dans plusieurs variantes DPI (@2x, @3x, etc.), les lignes 9-patch seront généralement mises à l'échelle avec l'image. Il existe plusieurs façons de résoudre ce problème, mais l'approche la plus simple consiste peut-être à utiliser l'outil mogrify d'ImageMagick. L'outil dispose d'une fonction -shave qui peut être utilisée pour recadrer l'image afin de réduire l'épaisseur des lignes 9-patch :
mogrify -shave 1x1 -path path/to/images *@2x.9.png mogrify -shave 2x2 -path path/to/images *@3x.9.png mogrify -shave 3x3 -path path/to/images *@4x.9.png
Les images DPI normales (celles sans le préfixe @Nx ) ne sont pas affectées, il n'est donc nécessaire d'exécuter la commande que sur les images destinées à des écrans DPI élevés.
Images animées
Les formats d'images animées WebP et GIF sont pris en charge par le style Imagine.
Personnalisation
Chemin d'accès
Le style Imagine permet de personnaliser le chemin utilisé pour la sélection des images. Le chemin peut être spécifié pour n'importe quelle fenêtre ou élément, et il se propage automatiquement aux enfants de la même manière que fonts. Dans l'exemple suivant, la fenêtre et les trois boutons radio apparaissent avec des images sombres (fichiers situés dans "qrc:/themes/dark").
import QtQuick import QtQuick.Controls import QtQuick.Controls.Imagine ApplicationWindow { visible: true Imagine.path: "qrc:/themes/dark" Column { anchors.centerIn: parent RadioButton { text: qsTr("Small") } RadioButton { text: qsTr("Medium"); checked: true } RadioButton { text: qsTr("Large") } } } |
|
Outre la spécification du chemin d'accès en QML, il est également possible de le spécifier via une variable d'environnement ou dans un fichier de configuration. Les attributs spécifiés en QML sont prioritaires sur toutes les autres méthodes.
Fichier de configuration
| Variable | Description du fichier de configuration |
|---|---|
Path | Spécifie le chemin d'accès au répertoire contenant les éléments de style Imagine. S'il n'est pas spécifié, les ressources intégrées sont utilisées. Par exemple, pour spécifier un chemin d'accès à un répertoire stocké dans le système de ressources: [Imagine] Path=:/imagine-assets Pour spécifier un chemin relatif vers un répertoire local : [Imagine] Path=imagine-assets Note : En raison d'une limitation technique, le chemin ne doit pas être nommé "imagine" s'il est relatif au fichier |
Voir Qt Quick Controls Configuration File pour plus de détails sur le fichier de configuration.
Variables d'environnement
| Variable | Description de la variable |
|---|---|
QT_QUICK_CONTROLS_IMAGINE_PATH | Spécifie le chemin d'accès au répertoire contenant les éléments de style Imagine. S'il n'est pas spécifié, les ressources intégrées sont utilisées. Par exemple, pour spécifier un chemin d'accès à un répertoire stocké dans le système de ressources: QT_QUICK_CONTROLS_IMAGINE_PATH=:/imagine-assets Pour spécifier un chemin relatif vers un répertoire local : QT_QUICK_CONTROLS_IMAGINE_PATH=imagine-assets Note : En raison d'une limitation technique, le chemin ne doit pas être nommé "imagine" s'il est relatif au fichier |
QT_QUICK_CONTROLS_IMAGINE_SMOOTH | La valeur 1 permet une mise à l'échelle progressive des images 9-patch. Cette variable d'environnement a été ajoutée dans Qt 6.5. |
Voir Variables d'environnement prises en charge dans Qt Quick Controls pour la liste complète des variables d'environnement prises en charge.
Palette
Le style Imagine prend en charge la personnalisation de la palette via la propriété palette et le fichier qtquickcontrols2.conf. Comme pour les autres styles, les palette roles exacts utilisés par le style Imagine dépendent du style. Cependant, comme la plupart de l'apparence visuelle des contrôles (par exemple : les arrière-plans) sont gérés par des images, seuls les rôles qui sont typiquement utilisés pour le texte auront un effet.
Police
Les polices personnalisées peuvent être définies via la propriété font et le fichier de configuration.
Dépendance
Le style Imagine doit être importé séparément pour avoir accès aux attributs qui lui sont spécifiques. Il convient de noter qu'indépendamment des références au style Imagine, le même code d'application s'exécute avec n'importe quel autre style. Les attributs spécifiques à Imagine n'ont d'effet que lorsque l'application est exécutée avec le style Imagine.
Si le style Imagine est importé dans un fichier QML qui est toujours chargé, le style Imagine doit être déployé avec l'application afin de pouvoir exécuter l'application quel que soit le style avec lequel elle est exécutée. L'utilisation de sélecteurs de fichiers permet d'apporter des modifications spécifiques à un style sans créer de dépendance absolue à l'égard d'un style.
Voir aussi Styling Qt Quick Controls
Documentation sur les propriétés attachées
Imagine.path: string |
Cette propriété jointe contient le chemin d'accès à l'image...
Button {
Imagine.path: "qrc:/themes/dark"
}Informations connexes
© 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.






































































































































































































































































































