このページでは

DelegateStyle QML Type

コントロール内の要素の外観を定義します。詳細...

Import Statement: import Qt.labs.StyleKit
Inherited By:

HandleStyle, IndicatorStyle, and SubIndicatorStyle

Status: Technology preview

この型はテクノロジープレビュー段階にあり、変更される可能性があります。

プロパティ

詳細な説明

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 control

delegateStyle 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 です。

visible およびcolorも参照してください 。

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.