DelegateStyle QML Type
コントロール内の要素の外観を定義します。詳細...
| Import Statement: | import Qt.labs.StyleKit |
| Inherited By: | |
| Status: | Technology preview |
この型はテクノロジープレビュー段階にあり、変更される可能性があります。
プロパティ
- alignment : Qt::Alignment
- border : BorderStyle
- bottomLeftRadius : real
- bottomMargin : real
- bottomRightRadius : real
- clip : bool
- color : color
- data : QObject
- delegate : Component
- fillHeight : bool
- fillWidth : bool
- gradient : Gradient
- height : real
- image : ImageStyle
- leftMargin : real
- margins : real
- minimumHeight : real
- minimumWidth : real
- opacity : real
- radius : real
- rightMargin : real
- rotation : real
- scale : real
- shadow : ShadowStyle
- topLeftRadius : real
- topMargin : real
- topRightRadius : real
- visible : bool
- width : real
詳細な説明
DelegateStyleは、ControlStyle 内の視覚要素の外観(background 、indicator 、あるいはindicator.foreground のようなサブ要素など)を記述します。これには、size 、color 、border 、radius 、shadow 、image 、opacity などを制御するためのプロパティが用意されています。
注: Qt.labs モジュール内の型は、将来のバージョンにおいても互換性が保証されるものではありません。
関連項目: ControlStyle 、ControlStateStyle 、およびFallbackStyle リファレンス。
プロパティのドキュメント
alignment : Qt::Alignment
親要素内でのデリゲートの配置。デフォルト値はQt.AlignLeft | Qt.AlignVCenter です。
border : BorderStyle
このデリゲートの境界線のスタイルを設定するためのグループ化されたプロパティ。
bottomLeftRadius : real
左下隅の角の丸み。設定されていない場合は、radius がデフォルト値となります。
radius 、topLeftRadius 、topRightRadius 、およびbottomRightRadiusも参照してください 。
bottomMargin : real
このデリゲートの下部マージン。設定されていない場合は、margins にフォールバックします。
margins 、topMargin 、leftMargin 、およびrightMarginも参照してください 。
bottomRightRadius : real
右下隅の角の半径。設定されていない場合は、radius がデフォルト値となります。
radius 、topLeftRadius 、topRightRadius 、およびbottomLeftRadiusも参照してください 。
clip : bool
デリゲートがその内容を切り取るかどうか。デフォルト値は `false` です。
color : color
このデリゲートの塗りつぶし色。デフォルト値はtransparent です。
「クイックグラデーション(QuickRectangle )」ではグラデーションが色に置き換わるのとは異なり、StyleKit ではグラデーション(gradient )が色の上に描画されます。つまり、半透明のグラデーションをオーバーレイ(例えば、控えめな陰影効果)として使用しながら、その下にある色が透けて見えるようにすることができます。
button {
background.gradient: Gradient {
GradientStop { position: 0.0; color: Qt.alpha("black", 0.0)}
GradientStop { position: 1.0; color: Qt.alpha("black", 0.2)}
}
background.color: "lightsteelblue"
hovered.background.color: Qt.darker("lightsteelblue", 1.1)
pressed.background.color: Qt.darker("lightsteelblue", 1.2)
}「 gradient 」および「opacity 」も参照してください 。
data : QObject
スタイルからカスタムdelegate コンポーネントへカスタムデータを渡すために使用できる、任意のオブジェクトです。
これにより、StyleKit APIが提供する範囲を超えたカスタムスタイルプロパティを定義できます。データオブジェクトは状態やテーマによって変化させることも可能であり、組み込みのプロパティではカバーされていないカスタムdelegate 内の要素のスタイル設定が可能になります。
以下のスニペットでは、コントロールの状態に応じて色が変化するオーバーレイText を描画するカスタムデリゲートを使用しています。このデリゲートはStyledItem を継承しています。これはオプションですが、これによりボタンの背景の残りの部分が正常にレンダリングされることが保証されます。
component OverlayData : QtObject {
property color overlayColor
}
toolButton {
background.delegate: StyledItem {
id: custom
Text {
color: custom.delegateStyle.data.overlayColor
font.pixelSize: 30
text: "シ"
}
}
background.data: OverlayData {
overlayColor: "sandybrown"
}
hovered.background.data: OverlayData {
overlayColor: "magenta"
}
}注: `data `オブジェクトは 全体として伝播されます。通常のスタイルプロパティとは異なり、データオブジェクト内の個々のプロパティは個別に伝播されることはありません。
「delegate」も参照してください 。
delegate : Component
Qt Quick コントロール内でDelegateStyle をレンダリングするために使用されるデリゲートです。
デフォルト値は `null` であり、この場合は代わりに `StyledItem ` がレンダリングに使用されます。デリゲートを完全に非表示にし(かつ作成されないようにするには)、visible を `false` に設定してください。
デリゲートには、以下の必須プロパティを定義する必要があります:
required property DelegateStyle delegateStyle
required property QtObject controldelegateStyle DelegateStyle を指し、デリゲートのスタイル設定方法を記述します。 は、デリゲートを所有するcontrol Qt Quick コントロールを指します。後者は、スタイルからは得られないコントロールに関する追加情報を取得するために使用できます。
所有するコントロールの具体的な型がわかっている場合は、control プロパティに対してQtObject の代わりにその型を使用できます。たとえば、以下のスニペットにあるハンドルデリゲートは常に Slider 内で使用されるため、型をT.Slider に設定できます:
// import QtQuick.Templates as T
slider {
handle.delegate: Rectangle {
id: handle
required property DelegateStyle delegateStyle
required property T.Slider control
implicitWidth: delegateStyle.width
implicitHeight: delegateStyle.height
radius: delegateStyle.radius
color: delegateStyle.color
Text {
anchors.centerIn: parent
text: handle.control.value.toFixed(0)
}
}
}注: DelegateStyle にdrop shadow が定義されている場合 、それはshadow delegate.
「 data 」、「visible 」、「StyledItem 」も参照してください 。
fillHeight : bool
デリゲートが親アイテムの利用可能な高さを埋めるべきかどうか。
チェックボックスインジケータのフォアグラウンドなど、一部のデリゲートでは、高さを固定するのではなく、インジケータの利用可能な高さ(および幅)いっぱいに表示することが望まれる場合がよくあります。これは、fillHeight をtrue に設定することで実現できます。デリゲートと親要素の端との間にスペースを追加するには、margins プロパティを使用します。
fillHeight がfalse の場合、デリゲートの高さはそのheight によって決定されます。
「 fillWidth 」および「height 」も参照してください 。
fillWidth : bool
デリゲートが親アイテムの利用可能な幅を埋めるべきかどうか。
Slider のgrooveなど、一部のデリゲートについては、暗黙的に固定された幅を持つのではなく、コントロールの利用可能な幅いっぱいに広がることを期待されることがよくあります。これは、fillWidth をtrue に設定することで実現できます。デリゲートとその親の端の間にスペースを追加するには、margins プロパティを使用します。
fillWidth がfalse に設定されている場合、デリゲートの幅はそのwidth によって決定されます。
「 fillHeight 」および「width 」も参照してください 。
gradient : Gradient
このデリゲートのグラデーション。デフォルト値はnull (グラデーションなし)です。
「QuickRectangle 」ではグラデーションが色に置き換わりますが、StyleKit では色がそのまま残ったまま、その上にグラデーションが描画されます。つまり、半透明のグラデーションをオーバーレイ(例えば、微妙な陰影効果)として使用しながら、その下にある色が透けて見えるようにすることができます。
button {
background.gradient: Gradient {
GradientStop { position: 0.0; color: Qt.alpha("black", 0.0)}
GradientStop { position: 1.0; color: Qt.alpha("black", 0.2)}
}
background.color: "lightsteelblue"
hovered.background.color: Qt.darker("lightsteelblue", 1.1)
pressed.background.color: Qt.darker("lightsteelblue", 1.2)
}「color」も参照してください 。
height : real
このデリゲートの高さ。
注:この プロパティは、fillHeight がfalse である場合にのみ、デリゲートの高さを設定します。これは、fillHeight がスタイル階層の上位(例えばfallback style 内など)で設定されている場合にも適用されます。
このデリゲートがコントロールのルート(たとえば、background やindicator )にある場合、fillHeight がtrue であっても、コントロールのimplicit height を計算する際にこのデリゲートも含まれます。
「 width 」、「fillHeight 」、「minimumHeight 」、および「StyleKit Property Resolution」も参照してください 。
image : ImageStyle
このデリゲート内に画像を配置するためのグループ化プロパティ。
ImageStyleも参照してください 。
leftMargin : real
このデリゲートの左マージン。設定されていない場合は、margins にフォールバックします。
margins 、rightMargin 、topMargin 、およびbottomMarginも参照してください 。
margins : real
このデリゲート周囲の均一な余白。これを設定すると、leftMargin 、rightMargin 、topMargin 、およびbottomMargin に対するデフォルト値が指定されます。各辺は個別に上書き可能です。
leftMargin 、rightMargin 、topMargin 、およびbottomMarginも参照してください 。
minimumHeight : real
このデリゲートの最小高さ。デリゲートのサイズは、この値より小さくはなりません。
minimumWidth : real
このデリゲートの最小幅。デリゲートのサイズは、この値より小さくなることはありません。
opacity : real
このデリゲートの不透明度。0.0 (完全に透明)から1.0 (完全に不透明)までの範囲です。デフォルト値は1.0 です。
radius : real
このデリゲートの4つの角すべてに適用される角の半径です。個々の角については、topLeftRadius 、topRightRadius 、bottomLeftRadius 、およびbottomRightRadius を使用して上書きできます。
topLeftRadius 、topRightRadius 、bottomLeftRadius 、およびbottomRightRadiusも参照してください 。
rightMargin : real
このデリゲートの右マージン。設定されていない場合は、margins にフォールバックします。
margins 、leftMargin 、topMargin 、およびbottomMarginも参照してください 。
rotation : real
このデリゲートの回転角度(度単位)。
scale : real
このデリゲートのスケーリング係数です。デフォルト値は1.0 です。
shadow : ShadowStyle
このデリゲートの背面にドロップシャドウを適用するためのグループ化されたプロパティです。
ShadowStyleも参照してください 。
topLeftRadius : real
左上隅の角の丸み。設定されていない場合は、radius がデフォルト値となります。
radius 、topRightRadius 、bottomLeftRadius 、およびbottomRightRadiusも参照してください 。
topMargin : real
このデリゲートの上部マージン。設定されていない場合は、margins にフォールバックします。
margins 、bottomMargin 、leftMargin 、およびrightMarginも参照してください 。
topRightRadius : real
右上の角の半径。設定されていない場合は、radius がデフォルト値となります。
radius 、topLeftRadius 、bottomLeftRadius 、およびbottomRightRadiusも参照してください 。
visible : bool
このデリゲートが表示されるかどうか。デフォルト値はtrue です。
注: デフォルト値はtrueですが 、fallback style (多くのデフォルト値を上書きします)では、CheckBox 、RadioButton 、Slider など、通常は背景を描画すべきではないコントロールについて、background.visible をfalse に設定します。
visible がfalse の場合、delegate は作成されません。非表示のデリゲートを作成する必要がある場合は、代わりにopacity を0 に設定することを検討してください。
opacityも参照してください 。
width : real
このデリゲートの幅。
注:この プロパティは、fillWidth がfalse の場合にのみ、デリゲートの幅を設定します。これは、スタイル階層の上位(例えばfallback style 内)でfillWidth が設定されている場合にも適用されます。
このデリゲートがコントロールのルート(たとえば、background やindicator )にある場合、fillWidth がtrue であっても、コントロールのimplicit width を計算する際にこのデリゲートも含まれます。
「 height 」、「fillWidth 」、「minimumWidth 」、および「StyleKit Property Resolution」も参照してください 。
© 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.