ShapePath QML Type
パスおよび、そのパスに関連するストロークや塗りつぶしのプロパティについて説明します。詳細...
| Import Statement: | import QtQuick.Shapes 1.12 |
| Inherits: |
プロパティ
- 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
詳細な説明
Shape には、1つ以上のShapePath要素が含まれます。Shapeが可視的な出力を生成するには、少なくとも1つのShapePathが必要です。ShapePath自体はPath であり、ストローク幅や色、塗りつぶしの色やグラデーション、接合スタイルやキャップスタイルなど、ストロークおよび塗りつぶしのパラメータを記述する追加のプロパティを持っています。 通常のPath オブジェクトと同様に、ShapePathもまた、PathMove 、PathLine 、PathCubic 、PathQuad 、PathArc といったパス要素のリストと、開始位置を含んでいます。
これらのデータセットのプロパティに変更が加わると、その変更は上流に伝播され、Shapeの出力が変更されます。つまり、通常のQMLバインディングやNumberAnimation などのアニメーションタイプを使用することで、開始位置や終了位置、制御点、あるいはストロークや塗りつぶしのパラメータなどを、簡単かつ容易に変更したり、アニメーション化したりすることができます。
次の例では、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 }
}Shapeに関連付けられた状態での、joinStyleIndexが2(ShapePath.RoundJoin)の場合の出力は以下の通りです:

「 Qt Quick の例 - シェイプ」、「天気予報の例」、および「Shape 」も参照してください 。
プロパティのドキュメント
capStyle : enumeration
このプロパティは、線の端点がどのように描画されるかを定義します。デフォルト値はShapePath.SquareCap です。
| 定数 | 説明 |
|---|---|
ShapePath.FlatCap | 線の端点を覆わない正方形の線端。 |
ShapePath.SquareCap | 線の端点を覆い、線の幅の半分だけ端点より外側に伸びる四角い線の端。 |
ShapePath.RoundCap | 角が丸い線の端。 |
cosmeticStroke : bool [since 6.11]
このプロパティは、レンダリングスケールにかかわらずストローク幅が一定に保たれるかどうかを指定します。
このプロパティが `true` に設定されている場合、図形に適用される `QtQuick::Item::scale` などの変換に関係なく、strokeWidth で指定されたデバイス非依存ピクセル単位で、図形のアウトラインは一定の幅で描画されます。
デフォルト値は `false` です。
このプロパティは Qt 6.11 で導入されました。
strokeWidthも参照してください 。
dashOffset : real
このプロパティは、ダッシュパターンの始点を定義するもので、その値はダッシュパターンを指定するために使用される単位で測定されます。
デフォルト値は `0` です。
QPen::setDashOffset()も参照してください 。
dashPattern : list<real>
このプロパティは、strokeStyle がShapePath.DashLineに設定された場合のダッシュパターンを定義します。パターンは、偶数の正のエントリとして指定する必要があります。ここで、エントリの1、3、5…がダッシュ、2、4、6…がスペースとなります。パターンは、ペンの幅を単位として指定されます。
デフォルト値は (4, 2) であり、これは 4 *strokeWidth ピクセルのダッシュの後に、2 *strokeWidth ピクセルのスペースが続くことを意味します。
QPen::setDashPattern()も参照してください 。
fillColor : color
このプロパティは、塗りつぶしの色を保持します。
transparent に設定すると、塗りつぶしは行われません。
デフォルト値は `white` です。
注: fillGradient またはfillItem のいずれかがnull 以外設定されている場合 、これらはfillColor よりも優先されます。この場合、fillColor は無視されます。
fillGradient : ShapeGradient
このプロパティは、塗りつぶしのグラデーションを定義します。デフォルトではグラデーションは有効になっておらず、値は `null` です。この場合、塗りつぶしは、fillItem プロパティが設定されている場合はそれに基づき、設定されていない場合はfillColor プロパティが使用されます。
注: ここでは「 Gradient」タイプは 使用できません。代わりに、LinearGradient のような高度なサブタイプのいずれかを使用することをお勧めします。
デフォルトでは、最大 256 種類のグラデーションを同時に表示できます。この制限は、QT_QUICKSHAPES_MAX_GRADIENTS 環境変数でカスタマイズ可能です。
fillItem : Item [since 6.8]
このプロパティは、図形の塗りつぶしとして使用する別のQt Quick アイテムを定義します。このアイテムは、テクスチャプロバイダ(layered item 、ShaderEffectSource 、Image など)でなければなりません。有効なテクスチャプロバイダでない場合、このプロパティは無視されます。
fillItem fillItem の視覚的な親は、 または でなければなりません。特に、 は ではないため、その子要素を塗りつぶしアイテムとして使用することはできません。 が の子として作成される場合は、親を手動で設定する必要があります。Qt Quick Item ShapePath Item ShapePath
たとえば、fillItem プロパティの割り当て内でImage オブジェクトを直接作成すると、そのオブジェクトはShapePath の子要素となります。この場合、その親要素を手動で設定する必要があります。以下の例では、ウィンドウのcontentItem を親要素として使用しています。
fillItem: Image {
visible: false
source: "contents.png"
parent: window.contentItem
}注: レイヤー化されたアイテムをfillItem として使用する場合 、塗りつぶしを変形させるとピクセル化現象が発生することがあります。この場合、layer.smooth プロパティをtrueに設定すると、より良好な視覚的結果が得られます。
デフォルトでは、塗りつぶしアイテムは設定されておらず、値はnull になっています。
注: null 以外が設定されている場合 、fillItem プロパティがfillColor より優先されます。また、fillGradient プロパティは、fillItem およびfillColor の両方を優先します。
このプロパティは Qt 6.8 で導入されました。
fillRule : enumeration
このプロパティは塗りつぶしルールを指定します。デフォルト値は `ShapePath.OddEvenFill` です。塗りつぶしルールの詳細については、QPainterPath::setFillRule() を参照してください。
| 定数 | 説明 |
|---|---|
ShapePath.OddEvenFill | 奇数・偶数塗りつぶしルール。 |
ShapePath.WindingFill | ゼロ以外の巻き付け塗りつぶしルール。 |
fillTransform : matrix4x4 [since 6.8]
このプロパティは、パスの塗りつぶしパターン(fillGradient またはfillItem )に適用される変形を定義します。塗りつぶしが単色または透明の場合は、このプロパティは効果を持ちません。デフォルトでは、塗りつぶしの変形は有効になっておらず、このプロパティの値はidentity 行列となります。
この例では、`myImageItem ` の内容を塗りつぶし、`myShape` の中心点を軸に 45 度回転させた長方形を表示しています:
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 }
}このプロパティは Qt 6.8 で導入されました。
joinStyle : enumeration
このプロパティは、2本の接続された線間の接合部の描画方法を定義します。デフォルト値はShapePath.BevelJoin です。
| 定数 | 説明 |
|---|---|
ShapePath.MiterJoin | 線の外側の端が角度をつけて延長され、その領域が塗りつぶされます。 |
ShapePath.BevelJoin | 2 本の線の間にある三角形の切り欠き部分が塗りつぶされます。 |
ShapePath.RoundJoin | 2 本の線間の円弧部分が塗りつぶされます。 |
miterLimit : int
joinStyle がShapePath.MiterJoin に設定されている場合、このプロパティは、マイター接合部が接合点からどの程度まで伸びることができるかを指定します。
デフォルト値は 2 です。
pathHints : PathHints [since 6.7]
このプロパティは、形状の特性を記述します。設定すると、これらのヒントによってレンダリングが最適化される場合があります。デフォルトでは、ヒントは設定されていません。以下の値の組み合わせを指定できます。
| 定数 | 説明 |
|---|---|
ShapePath.PathLinear | パスには直線のみが含まれ、曲線は含まれません。 |
ShapePath.PathQuadratic | パスには3次曲線が含まれず、直線と2次ベジェ曲線のみが含まれます。 |
ShapePath.PathConvex | パスにはくぼみや穴が含まれていません。図形内の2点間のすべての直線は、完全に図形の内側に位置します。 |
ShapePath.PathFillOnRight | このパスは、塗りつぶし部分の周囲のアウトラインの制御点が時計回りに、図形の穴の周囲のアウトラインの制御点が反時計回りに配置されるという、TrueType の規約に従っています。 |
ShapePath.PathSolid | パスには穴がなく、数学的に言えば単連結です。 |
ShapePath.PathNonIntersecting | パスのアウトラインは、それ自体と交差していません。 |
ShapePath.PathNonOverlappingControlPointTriangles | 曲線の制御点によって定義される三角形は、互いに、またどの線分とも重なりません。また、線分同士が交差することはありません。これは、PathNonIntersecting を意味します。 |
すべてのヒントが論理的に独立しているわけではありませんが、依存関係は強制されません。たとえば、PathLinear はPathQuadratic を意味しますが、PathLinear が成立していてもPathQuadratic が成立しないことはあり得ます。
pathHints プロパティは、真であることがわかっている一連の命題を表します。ヒントが存在しないからといって、対応する命題が必ずしも偽であるとは限りません。
このプロパティは Qt 6.7 で導入されました。
strokeColor : color
このプロパティは、ストロークの色を指定します。
transparent に設定すると、ストロークは適用されません。strokeGradient プロパティが設定されている場合、strokeColor よりも優先されます。
デフォルト値は `white` です。
strokeGradient : ShapeGradient [since 6.12]
このプロパティは、ストロークのグラデーションを定義します。デフォルトではグラデーションは有効になっておらず、値は `null` です。この場合、ストロークは `strokeColor ` プロパティに基づいて決定されます。
注: ここでは「 Gradient」 タイプは 使用できません。代わりに、LinearGradient のような高度なサブタイプを使用することを推奨します。
注: 「null 」以外が設定された場合 、「strokeGradient 」が「strokeColor 」よりも優先されます。
デフォルトでは、最大 256 種類のグラデーションを同時に表示できます。この制限は、QT_QUICKSHAPES_MAX_GRADIENTS 環境変数でカスタマイズ可能です。
このプロパティは Qt 6.12 で導入されました。
strokeStyle : enumeration
このプロパティは、線のスタイルを定義します。デフォルト値はShapePath.SolidLineです。
| 定数 | 説明 |
|---|---|
ShapePath.SolidLine | 実線。 |
ShapePath.DashLine | 数ピクセル間隔で区切られた破線。 |
strokeWidth : real
このプロパティは、ストロークの幅を指定します。
負の値に設定すると、ストロークは描画されません。
デフォルト値は 1 です。
「cosmeticStroke」も参照してください 。
trim group
このパスのうち、表示されるセクションを指定します。
この区間は、パスの長さの割合である `start ` および `end` によって定義されます。デフォルトでは、`start ` は 0(パスの先頭を意味する)で、`end ` は 1(パスの末尾を意味する)であるため、パス全体が表示されます。
offset の値は、start およびend に加算されます。これにより[0, 1]の範囲を超過または下回った場合、値はループし、結果として得られるパスセクションも同様にループします。offset の実効範囲は-1から1の間です。デフォルト値は0です。
これらのプロパティは 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.