ShapePath QML Type
Beschreibt einen Pfad und die zugehörigen Eigenschaften für das Streichen und Füllen. Mehr...
Import Statement: | import QtQuick.Shapes 1.8 |
Inherits: |
Eigenschaften
- capStyle : enumeration
- 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
Detaillierte Beschreibung
Ein Shape enthält ein oder mehrere ShapePath-Elemente. Mindestens ein ShapePath ist notwendig, damit ein Shape etwas Sichtbares ausgeben kann. Ein ShapePath selbst ist ein Path mit zusätzlichen Eigenschaften, die die Strich- und Füllparameter beschreiben, wie z.B. die Strichstärke und -farbe, die Füllfarbe oder der Farbverlauf, Verbindungsstile und Kappenstile und so weiter. Wie bei gewöhnlichen Path Objekten enthält ShapePath auch eine Liste von Pfadelementen wie PathMove, PathLine, PathCubic, PathQuad, PathArc, zusammen mit einer Startposition.
Alle Eigenschaftsänderungen in diesen Datensätzen werden aufgesprudelt und verändern die Ausgabe des Shapes. Das bedeutet, dass es einfach und leicht ist, die Start- und Endposition, Kontrollpunkte oder beliebige Strich- oder Füllparameter zu ändern oder sogar zu animieren, indem man die üblichen QML-Bindungen und Animationstypen wie NumberAnimation verwendet.
Im folgenden Beispiel ändert sich der Stil der Linienverbindung automatisch in Abhängigkeit vom Wert von 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 } }
Sobald es mit einem Shape verknüpft ist, ist hier die Ausgabe mit einem joinStyleIndex von 2 (ShapePath.RoundJoin):
Siehe auch Qt Quick Beispiele - Shapes, Beispiel für Wettervorhersage und Shape.
Dokumentation der Eigenschaft
capStyle : enumeration |
Diese Eigenschaft legt fest, wie die Endpunkte von Linien gezeichnet werden. Der Standardwert ist ShapePath.SquareCap
.
Konstante | Beschreibung |
---|---|
ShapePath.FlatCap | Ein quadratisches Linienende, das den Endpunkt der Linie nicht abdeckt. |
ShapePath.SquareCap | Ein quadratisches Linienende, das den Endpunkt überdeckt und um die Hälfte der Linienbreite darüber hinausgeht. |
ShapePath.RoundCap | Ein abgerundetes Linienende. |
dashOffset : real |
Diese Eigenschaft definiert den Startpunkt des Strichmusters, gemessen in den Einheiten, die zur Festlegung des Strichmusters verwendet werden.
Der Standardwert ist 0.
Siehe auch QPen::setDashOffset().
Diese Eigenschaft definiert das Strichelmuster, wenn ShapePath.strokeStyle auf ShapePath.DashLine gesetzt wird. Das Muster muss als gerade Anzahl von positiven Einträgen angegeben werden, wobei die Einträge 1, 3, 5... die Striche und 2, 4, 6... die Leerzeichen sind. Das Muster wird in Einheiten der Stiftbreite angegeben.
Der Standardwert ist (4, 2), d. h. ein Strich von 4 * ShapePath.strokeWidth Pixel, gefolgt von einem Leerzeichen von 2 * ShapePath.strokeWidth Pixel.
Siehe auch QPen::setDashPattern().
fillColor : color |
Diese Eigenschaft enthält die Füllfarbe.
Wenn sie auf transparent
gesetzt ist, erfolgt keine Füllung.
Der Standardwert ist white
.
Hinweis: Wenn entweder fillGradient oder fillItem auf einen anderen Wert als null
gesetzt sind, haben diese Vorrang vor fillColor
. Der Wert fillColor
wird in diesem Fall ignoriert.
fillGradient : ShapeGradient |
Diese Eigenschaft definiert den Füllgradienten. Standardmäßig ist kein Farbverlauf aktiviert und der Wert ist null
. In diesem Fall basiert die Füllung entweder auf der Eigenschaft fillItem, wenn diese eingestellt ist, und andernfalls wird die Eigenschaft fillColor verwendet.
Hinweis: Der Typ Farbverlauf kann hier nicht verwendet werden. Verwenden Sie stattdessen lieber einen der erweiterten Untertypen, wie LinearGradient.
fillItem : Item |
Diese Eigenschaft definiert ein anderes Qt Quick Element, das als Füllung für die Form verwendet wird. Das Element muss ein Texturgeber sein (z. B. layered item, ShaderEffectSource oder Image). Wenn es kein gültiger Texturgeber ist, wird diese Eigenschaft ignoriert.
Das visuelle Elternteil von fillItem
muss ein Qt Quick Item sein. Da ShapePath
kein Item ist, können insbesondere seine Kinder nicht als Füllelemente verwendet werden. Das manuelle Festlegen des übergeordneten Objekts von fillItem
ist erforderlich, wenn es als untergeordnetes Objekt von ShapePath
erstellt wird.
Wenn Sie beispielsweise ein Objekt Image direkt in der fillItem
-Eigenschaftszuweisung erstellen, wird es zu einem untergeordneten Objekt von ShapePath
. In diesem Fall muss das übergeordnete Objekt manuell festgelegt werden. Im folgenden Beispiel wird das contentItem des Fensters als übergeordnetes Objekt verwendet.
fillItem: Image { visible: false source: "contents.png" parent: window.contentItem }
Hinweis: Wenn Sie ein überlagertes Element als fillItem
verwenden, können beim Transformieren der Füllung Pixeleffekte auftreten. Wenn Sie die Eigenschaft layer.smooth auf true setzen, erhalten Sie in diesem Fall bessere visuelle Ergebnisse.
Standardmäßig ist kein Füllelement festgelegt und der Wert lautet null
.
Hinweis: Wird ein anderer Wert als null
festgelegt, hat die Eigenschaft fillItem
Vorrang vor fillColor. Die Eigenschaft fillGradient wiederum hat Vorrang vor fillItem
und fillColor.
Diese Eigenschaft wurde in Qt 6.8 eingeführt.
fillRule : enumeration |
Diese Eigenschaft enthält die Füllregel. Der Standardwert ist ShapePath.OddEvenFill
. Für eine Erklärung der Füllregeln siehe QPainterPath::setFillRule().
Konstante | Beschreibung |
---|---|
ShapePath.OddEvenFill | Ungerade-gerade Ausfüllregel. |
ShapePath.WindingFill | Nicht-null-gewickelte Füllregel. |
fillTransform : matrix4x4 |
Diese Eigenschaft definiert eine Transformation, die auf das Füllmuster des Pfades angewendet wird (fillGradient oder fillItem). Sie hat keine Auswirkung, wenn die Füllung eine Volltonfarbe oder transparent ist. Standardmäßig ist keine Fülltransformation aktiviert und der Wert dieser Eigenschaft ist die identity
Matrix.
Dieses Beispiel zeigt ein Rechteck, das mit dem Inhalt von myImageItem
gefüllt ist und um 45 Grad um den Mittelpunkt von myShape
gedreht wurde:
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 } }
Diese Eigenschaft wurde in Qt 6.8 eingeführt.
joinStyle : enumeration |
Diese Eigenschaft definiert, wie Verbindungen zwischen zwei verbundenen Linien gezeichnet werden. Der Standardwert ist ShapePath.BevelJoin
.
Konstante | Beschreibung |
---|---|
ShapePath.MiterJoin | Die Außenkanten der Linien werden so verlängert, dass sie sich in einem Winkel treffen, und dieser Bereich wird gefüllt. |
ShapePath.BevelJoin | Die dreieckige Kerbe zwischen den beiden Linien wird ausgefüllt. |
ShapePath.RoundJoin | Ein Kreisbogen zwischen den beiden Linien wird ausgefüllt. |
miterLimit : int |
Wenn joinStyle auf ShapePath.MiterJoin
gesetzt ist, gibt diese Eigenschaft an, wie weit die Gehrungsverbindung vom Verbindungspunkt aus reichen kann.
Der Standardwert ist 2.
pathHints : PathHints |
Diese Eigenschaft beschreibt die Merkmale der Form. Wenn sie gesetzt ist, können diese Hinweise ein optimiertes Rendering ermöglichen. Standardmäßig sind keine Hinweise eingestellt. Sie kann eine Kombination der folgenden Werte sein:
Konstante | Beschreibung |
---|---|
ShapePath.PathLinear | Der Pfad hat nur gerade Linien, keine Kurven. |
ShapePath.PathQuadratic | Der Pfad enthält keine kubischen Kurven: nur Linien und quadratische Bezier-Kurven. |
ShapePath.PathConvex | Der Pfad hat keine Beulen oder Löcher. Alle geraden Linien zwischen zwei Punkten innerhalb der Form werden vollständig innerhalb der Form verlaufen. |
ShapePath.PathFillOnRight | Der Pfad folgt der TrueType-Konvention, bei der die Kontrollpunkte von Umrissen um Füllungen im Uhrzeigersinn und die Kontrollpunkte von Umrissen um Löcher in der Form gegen den Uhrzeigersinn angeordnet sind. |
ShapePath.PathSolid | Der Pfad hat keine Löcher, oder mathematisch gesprochen ist er einfach verbunden. |
ShapePath.PathNonIntersecting | Die Pfadkontur kreuzt sich nicht selbst. |
ShapePath.PathNonOverlappingControlPointTriangles | Die durch die Kurven-Kontrollpunkte definierten Dreiecke überschneiden sich weder untereinander noch mit einem der Liniensegmente. Auch überschneiden sich keine Liniensegmente. Dies impliziert PathNonIntersecting . |
Nicht alle Hinweise sind logisch unabhängig, aber die Abhängigkeiten werden nicht erzwungen. Zum Beispiel impliziert PathLinear
PathQuadratic
, aber es ist zulässig, PathLinear
ohne PathQuadratic
zu haben.
Die Eigenschaft pathHints beschreibt eine Menge von Aussagen, von denen bekannt ist, dass sie wahr sind; das Fehlen eines Hinweises bedeutet nicht unbedingt, dass die entsprechende Aussage falsch ist.
Diese Eigenschaft wurde in Qt 6.7 eingeführt.
strokeColor : color |
Diese Eigenschaft enthält die Farbe der Striche.
Wenn sie auf transparent
gesetzt ist, findet keine Strichelung statt.
Der Standardwert ist white
.
strokeStyle : enumeration |
Diese Eigenschaft definiert den Stil des Striches. Der Standardwert ist ShapePath. SolidLine.
Konstante | Beschreibung |
---|---|
ShapePath.SolidLine | Eine einfache Linie. |
ShapePath.DashLine | Striche, die durch ein paar Pixel getrennt sind. |
strokeWidth : real |
Diese Eigenschaft gibt die Strichstärke an.
Wenn sie auf einen negativen Wert gesetzt wird, erfolgt keine Strichelung.
Der Standardwert ist 1.
© 2025 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.