ShapePath QML Type
Décrit un tracé et ses propriétés associées pour le contour et le remplissage. En savoir plus...
| Import Statement: | import QtQuick.Shapes 1.12 |
| Inherits: |
Propriétés
- capStyle : enumeration
- cosmeticStroke : bool
(since 6.11) - dashOffset : real
- dashPattern : list<real>
- fillColor : color
- fillGradient : ShapeGradient
- fillItem : Item
(since 6.8) - fillRule : enumeration
- fillTransform : matrix4x4
(since 6.8) - joinStyle : enumeration
- miterLimit : int
- pathHints : PathHints
(since 6.7) - strokeColor : color
- strokeGradient : ShapeGradient
(since 6.12) - strokeStyle : enumeration
- strokeWidth : real
- trim
(since 6.10)- trim.end : real
(since 6.10) - trim.offset : real
(since 6.10) - trim.start : real
(since 6.10)
- trim.end : real
Description détaillée
Un objet « Shape » contient un ou plusieurs éléments « ShapePath ». Au moins un élément « ShapePath » est nécessaire pour qu’un « Shape » affiche un résultat visible. Un élément « ShapePath » est lui-même un objet « Path » doté de propriétés supplémentaires décrivant les paramètres de contour et de remplissage, tels que la largeur et la couleur du contour, la couleur ou le dégradé de remplissage, les styles de jonction et d’extrémité, etc. Comme pour les objets « Path » classiques, un ShapePath contient également une liste d’éléments de tracé tels que PathMove, PathLine, PathCubic, PathQuad, PathArc, ainsi qu’une position de départ.
Toute modification des propriétés de ces ensembles de données se répercutera et modifiera le rendu de la forme. Cela signifie qu’il est simple et facile de modifier, voire d’animer, les positions de départ et d’arrivée, les points de contrôle ou tout paramètre de contour ou de remplissage à l’aide des liaisons QML habituelles et des types d’animation tels que NumberAnimation.
Dans l’exemple suivant, le style de jonction des lignes change automatiquement en fonction de la valeur de joinStyleIndex :
ShapePath {
strokeColor: "black"
strokeWidth: 16
fillColor: "transparent"
capStyle: ShapePath.RoundCap
property int joinStyleIndex: 0
property variant styles: [
ShapePath.BevelJoin,
ShapePath.MiterJoin,
ShapePath.RoundJoin
]
joinStyle: styles[joinStyleIndex]
startX: 30
startY: 30
PathLine { x: 100; y: 100 }
PathLine { x: 30; y: 100 }
}Une fois associé à une forme, voici le résultat avec un `joinStyleIndex` égal à 2 (ShapePath.RoundJoin) :

Voir également les exemples d’Qt Quick - Formes, l’exemple de prévisions météorologiques et Shape.
Documentation sur les propriétés
capStyle : enumeration
Cette propriété définit la manière dont les extrémités des lignes sont dessinées. La valeur par défaut est « ShapePath.SquareCap ».
| Constante | Description |
|---|---|
ShapePath.FlatCap | Une extrémité de ligne carrée qui ne recouvre pas le point d'extrémité de la ligne. |
ShapePath.SquareCap | Une extrémité de ligne carrée qui recouvre l'extrémité de la ligne et s'étend au-delà de celle-ci de la moitié de la largeur de la ligne. |
ShapePath.RoundCap | Une extrémité de ligne arrondie. |
cosmeticStroke : bool [since 6.11]
Cette propriété détermine si la largeur du trait reste constante quel que soit le facteur d'échelle de rendu.
Lorsque cette propriété est définie sur « true », le contour de la forme est tracé avec une largeur constante en pixels indépendants du périphérique, comme spécifié par « strokeWidth », quelles que soient les transformations appliquées à la forme, telles que « QtQuick::Item::scale ».
La valeur par défaut est « false ».
Cette propriété a été introduite dans Qt 6.11.
Voir également strokeWidth.
dashOffset : real
Cette propriété définit le point de départ du motif de tirets, mesuré dans les unités utilisées pour définir ce motif.
La valeur par défaut est 0.
Voir également QPen::setDashOffset().
dashPattern : list<real>
Cette propriété définit le motif de tirets lorsque la propriété « strokeStyle » est définie sur « ShapePath.DashLine ». Le motif doit être spécifié sous la forme d’un nombre pair d’entrées positives, où les entrées 1, 3, 5… correspondent aux tirets et les entrées 2, 4, 6… aux espaces. Le motif est spécifié en unités correspondant à la largeur du stylo.
La valeur par défaut est (4, 2), ce qui correspond à un trait de 4 * strokeWidth pixels suivi d’un espace de 2 * strokeWidth pixels.
Voir aussi QPen::setDashPattern().
fillColor : color
Cette propriété définit la couleur de remplissage.
Lorsqu'elle est définie sur « transparent », aucun remplissage n'est appliqué.
La valeur par défaut est « white ».
Remarque : si « fillGradient » ou « fillItem » sont définies sur une valeur autre que « null », elles prévaudront sur « fillColor ». Dans ce cas, la propriété « fillColor » sera ignorée.
fillGradient : ShapeGradient
Cette propriété définit le dégradé de remplissage. Par défaut, aucun dégradé n'est activé et la valeur est « null ». Dans ce cas, le remplissage s'appuiera soit sur la propriété « fillItem » si celle-ci est définie, soit, à défaut, sur la propriété « fillColor ».
Remarque : le type « Gradient » ne peut pas être utilisé ici. Préférez plutôt l’un des sous-types avancés, comme « LinearGradient ».
Remarque : si la valeur définie est différente de « null », la propriété « fillGradient » prévaudra à la fois sur « fillItem » et « fillColor ».
Par défaut, jusqu’à 256 dégradés différents peuvent être affichés simultanément. Cette limite peut être personnalisée à l’aide de la variable d’environnement QT_QUICKSHAPES_MAX_GRADIENTS.
fillItem : Item [since 6.8]
Cette propriété définit un autre élément « Qt Quick » à utiliser comme remplissage de la forme. L'élément doit être un fournisseur de texture (tel qu'un layered item, un ShaderEffectSource ou un Image). S'il ne s'agit pas d'un fournisseur de texture valide, cette propriété sera ignorée.
Le parent visuel de fillItem doit être un Qt Quick ou un Item. En particulier, comme ShapePath n’est pas un Item, ses enfants ne peuvent pas être utilisés comme éléments de remplissage. Il est nécessaire de définir manuellement le parent de fillItem lorsqu’il est créé en tant qu’enfant de ShapePath.
Par exemple, la création d’un objet Image directement dans l’affectation de la propriété fillItem en fera un enfant de ShapePath. Dans ce cas, son parent doit être défini manuellement. Dans l’exemple suivant, nous utilisons le contentItem de la fenêtre comme parent.
fillItem: Image {
visible: false
source: "contents.png"
parent: window.contentItem
}Remarque : lorsque vous utilisez un élément de calque comme « fillItem », vous pouvez observer des effets de pixellisation lors de la transformation du remplissage. Dans ce cas, définir la propriété « layer.smooth » sur « true » donnera de meilleurs résultats visuels.
Par défaut, aucun élément de remplissage n’est défini et la valeur est null.
Remarque : si elle est définie sur une valeur autre que « null », la propriété « fillItem » prévaut sur « fillColor ». La propriété « fillGradient » prévaut quant à elle à la fois sur « fillItem » et « fillColor ».
Cette propriété a été introduite dans Qt 6.8.
fillRule : enumeration
Cette propriété définit la règle de remplissage. La valeur par défaut est « ShapePath.OddEvenFill ». Pour plus d'informations sur les règles de remplissage, consultez QPainterPath::setFillRule().
| Constante | Description |
|---|---|
ShapePath.OddEvenFill | Règle de remplissage « pair-impair ». |
ShapePath.WindingFill | Règle de remplissage « en spirale » (non nulle). |
fillTransform : matrix4x4 [since 6.8]
Cette propriété définit une transformation à appliquer au motif de remplissage du tracé (fillGradient ou fillItem). Elle n'a aucun effet si le remplissage est une couleur unie ou transparent. Par défaut, aucune transformation de remplissage n'est activée et la valeur de cette propriété correspond à la matrice identity.
Cet exemple affiche un rectangle rempli du contenu de myImageItem, pivoté de 45 degrés autour du point central de myShape:
ShapePath {
fillItem: myImageItem
fillTransform: PlanarTransform.fromRotate(45, myShape.width / 2, myShape.height / 2)
PathRectangle { x: 10; y: 10; width: myShape.width - 20; height: myShape.height - 20 }
}Cette propriété a été introduite dans Qt 6.8.
joinStyle : enumeration
Cette propriété définit la manière dont sont tracées les jonctions entre deux lignes reliées. La valeur par défaut est « ShapePath.BevelJoin ».
| Constante | Description |
|---|---|
ShapePath.MiterJoin | Les bords extérieurs des lignes sont prolongés pour se rejoindre en formant un angle, et cette zone est remplie. |
ShapePath.BevelJoin | L'encoche triangulaire entre les deux lignes est remplie. |
ShapePath.RoundJoin | L’arc de cercle entre les deux lignes est rempli. |
miterLimit : int
Lorsque la propriété « joinStyle » est définie sur « ShapePath.MiterJoin », cette propriété spécifie la distance à laquelle l'assemblage en onglet peut s'étendre à partir du point d'assemblage.
La valeur par défaut est 2.
pathHints : PathHints [since 6.7]
Cette propriété décrit les caractéristiques de la forme. Si elles sont définies, ces indications peuvent permettre un rendu optimisé. Par défaut, aucune indication n’est définie. Elle peut être une combinaison des valeurs suivantes :
| Constante | Description |
|---|---|
ShapePath.PathLinear | Le tracé ne comporte que des lignes droites, aucune courbe. |
ShapePath.PathQuadratic | Le tracé ne comporte aucune courbe cubique : uniquement des lignes et des courbes de Bézier quadratiques. |
ShapePath.PathConvex | Le tracé ne comporte ni creux ni trous. Toutes les lignes droites reliant deux points à l’intérieur de la forme se trouvent entièrement à l’intérieur de celle-ci. |
ShapePath.PathFillOnRight | Le tracé respecte la convention TrueType selon laquelle les contours autour d’un remplissage plein ont leurs points de contrôle ordonnés dans le sens des aiguilles d’une montre, et les contours autour des trous de la forme ont leurs points de contrôle ordonnés dans le sens inverse des aiguilles d’une montre. |
ShapePath.PathSolid | Le tracé ne comporte aucun trou ; mathématiquement parlant, il est simplement connexe. |
ShapePath.PathNonIntersecting | Le contour du tracé ne se croise pas sur lui-même. |
ShapePath.PathNonOverlappingControlPointTriangles | Les triangles définis par les points de contrôle de la courbe ne se chevauchent pas entre eux, ni avec aucun des segments de droite. De même, aucun segment de droite ne se coupe. Cela implique que PathNonIntersecting. |
Toutes les contraintes ne sont pas logiquement indépendantes, mais les dépendances ne sont pas imposées. Par exemple, « PathLinear » implique « PathQuadratic », mais il est valable d’avoir « PathLinear » sans « PathQuadratic ».
La propriété `pathHints` décrit un ensemble d’énoncés connus pour être vrais ; l’absence d’une indication ne signifie pas nécessairement que l’énoncé correspondant est faux.
Cette propriété a été introduite dans Qt 6.7.
strokeColor : color
Cette propriété définit la couleur du trait.
Lorsqu'elle est définie sur « transparent », aucun contour n'est tracé. Si la propriété « strokeGradient » est définie, elle prévaut sur « strokeColor ».
La valeur par défaut est « white ».
strokeGradient : ShapeGradient [since 6.12]
Cette propriété définit le dégradé du trait. Par défaut, aucun dégradé n'est activé et la valeur est « null ». Dans ce cas, le trait s'appuiera sur la propriété « strokeColor ».
Remarque : le type « Gradient » ne peut pas être utilisé ici. Préférez plutôt l’un des sous-types avancés, comme « LinearGradient ».
Remarque : si la valeur définie est différente de « null », la propriété « strokeGradient » prévaudra sur « strokeColor ».
Par défaut, jusqu’à 256 dégradés différents peuvent être affichés simultanément. Cette limite peut être personnalisée à l’aide de la variable d’environnement ` QT_QUICKSHAPES_MAX_GRADIENTS `.
Cette propriété a été introduite dans Qt 6.12.
strokeStyle : enumeration
Cette propriété définit le style du trait. La valeur par défaut est ` ShapePath.SolidLine`.
| Constante | Description |
|---|---|
ShapePath.SolidLine | Une ligne continue. |
ShapePath.DashLine | Des tirets séparés de quelques pixels. |
strokeWidth : real
Cette propriété définit la largeur du trait.
Lorsqu'elle est définie sur une valeur négative, aucun trait n'est tracé.
La valeur par défaut est 1.
Voir aussi : cosmeticStroke.
trim group
Spécifie la partie de ce chemin qui sera affichée.
Cette partie est définie par les fractions de longueur de chemin start et end. Par défaut, start vaut 0 (ce qui correspond au début du chemin) et end vaut 1 (ce qui correspond à la fin du chemin) ; le chemin est donc affiché dans son intégralité.
La valeur de ` offset ` est ajoutée à ` start ` et ` end`. Si cela entraîne un dépassement vers le haut ou vers le bas de l’intervalle [0, 1], les valeurs seront bouclées, tout comme la section de chemin résultante. L’intervalle effectif de ` offset ` est compris entre -1 et 1. La valeur par défaut est 0.
Ces propriétés ont été introduites dans Qt 6.10.
© 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.