ShapePath QML Type
Décrit un chemin et les propriétés associées pour la caresse et le remplissage. Plus d'informations...
| Import Statement: | import QtQuick.Shapes 1.11 |
| 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
- 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 site Shape contient un ou plusieurs éléments ShapePath. Au moins un ShapePath est nécessaire pour que la sortie d'une forme soit visible. Un ShapePath lui-même est un Path avec des propriétés supplémentaires décrivant les paramètres de tracé et de remplissage, tels que l'épaisseur et la couleur du trait, la couleur ou le dégradé de remplissage, les styles de jointure et de capuchon, etc. Comme pour les objets Path ordinaires, ShapePath contient également une liste d'éléments de chemin 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 sera répercutée dans la bulle et modifiera la sortie de l'objet Shape. Cela signifie qu'il est simple et facile de modifier, ou même d'animer, la position de départ et d'arrivée, les points de contrôle ou tout paramètre de trait ou de remplissage à l'aide des liaisons QML habituelles et des types d'animation tels que NumberAnimation.
Dans l'exemple suivant, le style de jointure 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 indice de style de jointure de 2 (ShapePath.RoundJoin) :

Voir aussi Qt Quick Exemples - Formes, 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 couvre pas le point final de la ligne. |
ShapePath.SquareCap | Une extrémité de ligne carrée qui couvre le point final et le dépasse de la moitié de la largeur de la ligne. |
ShapePath.RoundCap | Extrémité de ligne arrondie. |
cosmeticStroke : bool [since 6.11]
Cette propriété indique si la largeur du trait reste constante malgré l'échelle de rendu.
Lorsque cette propriété vaut true, le contour de la forme est dessiné avec une largeur constante en pixels indépendants du périphérique, comme spécifié par strokeWidth, indépendamment de toute transformation appliquée à la forme, comme QtQuick::Item::scale.
La valeur par défaut est false.
Cette propriété a été introduite dans Qt 6.11.
Voir aussi strokeWidth.
dashOffset : real
Cette propriété définit le point de départ du motif du tiret, mesuré dans les unités utilisées pour spécifier le motif du tiret.
La valeur par défaut est 0.
Voir également QPen::setDashOffset().
dashPattern : list<real>
Cette propriété définit le motif des tirets lorsque strokeStyle est défini 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... sont les tirets et 2, 4, 6... sont les espaces. Le motif est spécifié en unités de largeur du stylo.
La valeur par défaut est (4, 2), ce qui signifie un tiret de 4 * strokeWidth pixels suivi d'un espace de 2 * strokeWidth pixels.
Voir également QPen::setDashPattern().
fillColor : color
Cette propriété définit la couleur de remplissage.
Si la valeur est transparent, il n'y a pas de remplissage.
La valeur par défaut est white.
Remarque : si fillGradient ou fillItem sont définis sur une valeur autre que null, ils auront la priorité sur fillColor. Dans ce cas, l'adresse fillColor sera ignorée.
fillGradient : ShapeGradient
Cette propriété définit le gradient de remplissage. Par défaut, aucun dégradé n'est activé et la valeur est null. Dans ce cas, le remplissage sera basé sur la propriété fillItem si elle est définie, et dans le cas contraire, la propriété fillColor sera utilisée.
Note : Le type Gradient ne peut pas être utilisé ici. Il est préférable d'utiliser l'un des sous-types avancés, comme LinearGradient.
Remarque : si la valeur est différente de null, la propriété fillGradient aura la priorité sur les propriétés 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 que layered item, ShaderEffectSource ou 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 Item . En particulier, comme ShapePath n'est pas un Item, ses enfants ne peuvent pas être utilisés comme éléments de remplissage. La définition manuelle du parent de l'objet fillItem est nécessaire lorsqu'il est créé en tant qu'enfant de l'objet ShapePath.
Par exemple, la création d'un objet Image directement dans l'affectation de 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 l'objet contentItem de la fenêtre comme parent.
fillItem: Image {
visible: false
source: "contents.png"
parent: window.contentItem
}Remarque : lorsque vous utilisez un élément en couche comme fillItem, vous pouvez constater des effets de pixellisation lors de la transformation du remplissage. En définissant la propriété layer.smooth sur true, vous obtiendrez de meilleurs résultats visuels dans ce cas.
Par défaut, aucun élément de remplissage n'est défini et la valeur est null.
Remarque : si la valeur est différente de null, la propriété fillItem est prioritaire sur fillColor. La propriété fillGradient est quant à elle prioritaire sur les propriétés fillItem et fillColor.
Cette propriété a été introduite dans Qt 6.8.
fillRule : enumeration
Cette propriété contient la règle de remplissage. La valeur par défaut est ShapePath.OddEvenFill. Pour une explication sur les règles de remplissage, voir QPainterPath::setFillRule().
| Constante | Description |
|---|---|
ShapePath.OddEvenFill | Règle de remplissage pair-impair. |
ShapePath.WindingFill | Règle de remplissage de l'enroulement non nul. |
fillTransform : matrix4x4 [since 6.8]
Cette propriété définit une transformation à appliquer au motif de remplissage du chemin (fillGradient ou fillItem). Elle n'a aucun effet si le remplissage est une couleur unie ou transparente. Par défaut, aucune transformation de remplissage n'est activée et la valeur de cette propriété est la matrice identity.
Cet exemple affiche un rectangle rempli du contenu de myImageItem avec une rotation 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 dessinées les jointures entre deux lignes connectées. La valeur par défaut est ShapePath.BevelJoin.
| Constante | Description |
|---|---|
ShapePath.MiterJoin | Les bords extérieurs des lignes sont prolongés pour former un angle et cette zone est remplie. |
ShapePath.BevelJoin | L'encoche triangulaire entre les deux lignes est remplie. |
ShapePath.RoundJoin | Un arc de cercle entre les deux lignes est rempli. |
miterLimit : int
Lorsque joinStyle est défini sur ShapePath.MiterJoin, cette propriété spécifie la distance à laquelle l'assemblage à 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. S'ils sont définis, ces indices peuvent permettre d'optimiser le rendu. Par défaut, aucun indice n'est défini. Il peut s'agir d'une combinaison des valeurs suivantes :
| Constante | Description |
|---|---|
ShapePath.PathLinear | Le chemin ne comporte que des lignes droites, pas de courbes. |
ShapePath.PathQuadratic | La trajectoire ne comporte aucune courbe cubique : uniquement des lignes et des courbes de Bézier quadratiques. |
ShapePath.PathConvex | La trajectoire ne présente pas de bosses ni de trous. Toutes les lignes droites entre deux points à l'intérieur de la forme seront entièrement à l'intérieur de la forme. |
ShapePath.PathFillOnRight | Le chemin suit la convention TrueType selon laquelle les contours autour d'un remplissage solide ont leurs points de contrôle ordonnés dans le sens des aiguilles d'une montre, et les contours autour des trous dans la forme ont leurs points de contrôle ordonnés dans le sens inverse des aiguilles d'une montre. |
ShapePath.PathSolid | Le chemin n'a pas de trous, ou, mathématiquement parlant, il est simplement connecté. |
ShapePath.PathNonIntersecting | Le contour du chemin ne se croise pas. |
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 ligne. De même, aucun segment de ligne ne se croise. Cela implique PathNonIntersecting. |
Tous les indices ne sont pas logiquement indépendants, mais les dépendances ne sont pas appliquées. Par exemple, PathLinear implique PathQuadratic, mais il est possible d'avoir PathLinear sans PathQuadratic.
La propriété pathHints décrit un ensemble de déclarations connues pour être vraies ; l'absence d'un indice ne signifie pas nécessairement que la déclaration correspondante est fausse.
Cette propriété a été introduite dans Qt 6.7.
strokeColor : color
Cette propriété définit la couleur de l'effet de caresse.
Lorsqu'elle est définie sur transparent, il n'y a pas de tracé.
La valeur par défaut est white.
strokeStyle : enumeration
Cette propriété définit le style de trait. La valeur par défaut est ShapePath.SolidLine.
| Constante | Description de la constante |
|---|---|
ShapePath.SolidLine | Une ligne simple. |
ShapePath.DashLine | Tirets séparés par 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 effectué.
La valeur par défaut est 1.
Voir également cosmeticStroke.
trim group
Spécifie la section du chemin qui sera affichée.
La section est définie par les fractions de longueur du chemin start et end. Par défaut, start vaut 0 (début du chemin) et end vaut 1 (fin du chemin), de sorte que l'intégralité du chemin est affichée.
La valeur de offset est ajoutée à start et end. Si cela entraîne un dépassement de la plage [0, 1], les valeurs seront enveloppées, de même que la section de chemin résultante. La plage effective de offset est comprise 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.