ShapePath QML Type
描線と塗りつぶしに関する Path と関連するプロパティを記述します。詳細...
Import Statement: | import QtQuick.Shapes 1.8 |
Inherits: |
プロパティ
- 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
詳細説明
Shape には、1 つ以上の ShapePath 要素が含まれます。Shapeを出力するためには、少なくとも1つのShapePathが必要です。ShapePath 自体はPath で、ストロークの幅や色、塗りつぶしの色やグラデーション、結合やキャップのスタイルなど、ストロークや塗りつぶしのパラメータを記述する追加のプロパティを持ちます。通常のPath オブジェクトと同様に、ShapePath はPathMove,PathLine,PathCubic,PathQuad,PathArc のようなパス要素のリストと開始位置も含んでいます。
これらのデータセットでプロパティを変更すると、バブルアップされ、シェイプの出力が変更されます。つまり、通常の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 } }
シェイプに関連付けると、joinStyleIndexが2(ShapePath.RoundJoin)の場合の出力です:
Qt Quick Examples - Shapes、Weather Forecast Example、Shapeも参照してください 。
プロパティの説明
capStyle : enumeration |
このプロパティは、線の端点の描画方法を定義します。デフォルト値はShapePath.SquareCap
です。
定数 | 説明 |
---|---|
ShapePath.FlatCap | 線の終点を覆わない正方形の線端。 |
ShapePath.SquareCap | 終点を覆い、そこから線幅の半分だけはみ出した四角形の線端。 |
ShapePath.RoundCap | 丸みを帯びた線端。 |
dashOffset : real |
このプロパティは、ShapePath.strokeStyle がShapePath.DashLine に設定されているときのダッシュパターンを定義します。パターンは、偶数の正の項目として指定されなければならず、1, 3, 5...の項目がダッシュで、2, 4, 6...の項目がスペースである。パターンはペンの幅の単位で指定する。
デフォルト値は(4, 2)で、4 *ShapePath.strokeWidth ピクセルのダッシュに、2 *ShapePath.strokeWidth ピクセルのスペースが続くことを意味する。
QPen::setDashPattern()も参照 。
fillColor : color |
このプロパティは塗りつぶし色を保持する。
transparent
に設定すると、塗りつぶしは行われない。
デフォル ト 値はwhite
。
注: fillGradient またはfillItem のいずれかがnull
以外に設定されている場合は、fillColor
よりもそちらが優先されます。この場合、fillColor
は無視されます。
fillGradient : ShapeGradient |
このプロパティは塗りつぶしグラデーションを定義します。デフ ォル ト では、 グ ラデ ィ エ ン ト は有効にな ら ず、 値はnull
です。 こ の場合、 塗 り は、fillItem プ ロパテ ィ が設定 さ れていればそれに基づ き 、 そ う でなければfillColor プ ロパテ ィ が用い ら れます。
注意: グラデーションタイプはここでは使用できません。むしろ、LinearGradient のような高度なサブタイプを使用することをお勧めします。
fillItem : Item |
このプロパティは、シェイプの塗りつぶしとして使用する別のQt Quick アイテムを定義します。このアイテムはテクスチャプロバイダでなければなりません(layered item 、ShaderEffectSource 、Image など)。有効なテクスチャプロバイダでない場合、このプロパティは無視されます。
fillItem
の視覚的親はQt Quick Item でなければならない。特に、ShapePath
はItem ではないので、その子を塗りつぶしアイテムとして使用することはできません。ShapePath
の子として作成される場合、fillItem
の親を手動で設定する必要があります。
た と えば、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 |
こ のプ ロパテ ィ は、 パスの塗 り パ タ ーン (fillGradient またはfillItem )に適用 さ れ る 変換を定義 し ます。塗 り がベ タ 色か透過の と き は効力を持ち ません。デフ ォル ト では塗 り 込み変換は有効にな ら ず、 こ のプ ロ パテ ィ の値はidentity
行列にな り ます。
この例では、myShape
の中心点を中心に 45 度回転したmyImageItem
の内容で塗りつぶされた矩形を表示しています:
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 |
このプロパティは形状の特徴を記述する。これらのヒントを設定すると、レンダリングを最適化できる場合があります。デフォルトでは、ヒントは設定されていません。以下の値の組み合わせが可能です:
定数 | 説明 |
---|---|
ShapePath.PathLinear | パスは直線のみで、曲線はありません。 |
ShapePath.PathQuadratic | パスには3次曲線はありません:直線と2次ベジェ曲線だけです。 |
ShapePath.PathConvex | パスにはへこみや穴はありません。形状の内側の 2 点間の直線はすべて、完全に形状の内側に収ま り ます。 |
ShapePath.PathFillOnRight | パスは、TrueType の慣例に従って、ベタの塗りつぶしの周りのアウトラインはその制御点を時計回りに並べ、シェイプの穴の周りのアウトラインはその制御点を反時計回りに並べます。 |
ShapePath.PathSolid | パスには穴がなく、数学的に言えば単につながっている。 |
ShapePath.PathNonIntersecting | パスの輪郭はそれ自身を横切らない。 |
ShapePath.PathNonOverlappingControlPointTriangles | 曲線の制御点で定義された三角形は、互いに重ならず、どの線分とも重ならない。また、どの線分も交差しない。これはPathNonIntersecting を意味する。 |
すべてのヒントが論理的に独立しているわけではないが、依存関係は強制されない。例えば、PathLinear
はPathQuadratic
を意味するが、PathQuadratic
なしでPathLinear
を持つことは有効である。
pathHints プロパティは、真であることがわかっているステートメントのセットを記述します。ヒントがないからといって、対応するステートメントが必ずしも偽であるとは限りません。
このプロパティは Qt 6.7 で導入されました。
strokeColor : color |
このプロパティは、描画色を保持します。
transparent
に設定すると、描線は発生しません。
デフォルト値はwhite
です。
strokeStyle : enumeration |
このプロパティは、ストロークのスタイルを定義します。デフォルト値はShapePath.SolidLine です。
定数 | 説明 |
---|---|
ShapePath.SolidLine | 無地の線。 |
ShapePath.DashLine | 数ピクセルで区切られたダッシュ。 |
strokeWidth : real |
このプロパティはストロークの幅を保持します。
負の値を設定すると、ストロークは発生しません。
デフォルト値は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.