ShapePath QML Type

描線と塗りつぶしに関する Path と関連するプロパティを記述します。詳細...

Import Statement: import QtQuick.Shapes 1.8
Inherits:

Path

プロパティ

詳細説明

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 - ShapesWeather Forecast ExampleShapeも参照してください

プロパティの説明

capStyle : enumeration

このプロパティは、線の端点の描画方法を定義します。デフォルト値はShapePath.SquareCap です。

定数説明
ShapePath.FlatCap線の終点を覆わない正方形の線端。
ShapePath.SquareCap終点を覆い、そこから線幅の半分だけはみ出した四角形の線端。
ShapePath.RoundCap丸みを帯びた線端。

dashOffset : real

このプロパティは、ダッシュパターンの開始点を定義し、ダッシュパターンを指定するために使用される単位で測定される。

デフォルト値は 0。

QPen::setDashOffset()も参照のこと


dashPattern : list<real>

このプロパティは、ShapePath.strokeStyleShapePath.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 のような高度なサブタイプを使用することをお勧めします。

:null 以外に設定された場合、fillGradientfillItemfillColor の両方に優先します。


fillItem : Item [since 6.8]

このプロパティは、シェイプの塗りつぶしとして使用する別のQt Quick アイテムを定義します。このアイテムはテクスチャプロバイダでなければなりません(layered itemShaderEffectSourceImage など)。有効なテクスチャプロバイダでない場合、このプロパティは無視されます。

fillItem の視覚的親はQt Quick Item でなければならない。特に、ShapePathItem ではないので、その子を塗りつぶしアイテムとして使用することはできません。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 プロパティは、fillItemfillColor の両方に優先します。

このプロパティは Qt 6.8 で導入されました。


fillRule : enumeration

このプロパティは、塗りつぶしルールを保持します。デフォルト値はShapePath.OddEvenFill です。塗りつぶしルールの説明については、QPainterPath::setFillRule() を参照してください。

定数説明
ShapePath.OddEvenFill奇偶塗り潰し規則。
ShapePath.WindingFill非ゼロ巻線塗りつぶし規則。

fillTransform : matrix4x4 [since 6.8]

こ のプ ロパテ ィ は、 パスの塗 り パ タ ーン (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.BevelJoin2本の線の間の三角形の切り欠きが塗りつぶされます。
ShapePath.RoundJoin2本の線の間の円弧が塗りつぶされる。

miterLimit : int

joinStyleShapePath.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 を意味する。

すべてのヒントが論理的に独立しているわけではないが、依存関係は強制されない。例えば、PathLinearPathQuadratic を意味するが、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.