このページでは

ControlStateStyle QML Type

指定された状態でのコントロールのスタイルを記述します。詳細...

Import Statement: import Qt.labs.StyleKit
Inherits:

ControlStyleProperties

Inherited By:

ControlStyle and CustomControl

プロパティ

詳細説明

ControlStateStyle は、特定の状態におけるコントロールのスタイルを記述します。ControlStyle は、通常の状態を表すため、ControlStateStyle を継承します。ControlStyle に直接設定されたプロパティは、他の状態がアクティブでないときにコントロールがどのように見えるかを記述します。状態固有のオーバーライドは、pressedhoveredchecked などの入れ子状態によって設定されます。

ネストされた状態は相互に排他的ではありません。複数の状態を同時にアクティブにすることができます。例えば、ボタンはホバーされた状態と押された状態の両方を同時にアクティブにすることができます。複数のステートがアクティブな場合、一致するすべてのステートのオーバーライドが適用されます。同じプロパティが複数のアクティブなステートに設定されている場合、競合は次の優先順位を使用して解決されます:pressed hovered,highlighted,focused,checked,vertical 。したがって、たとえばコントロールがpressedchecked の両方である場合、pressed.background.colorchecked.background.color より優先されます。

disabled 状態は例外である。無効化されたコントロールは対話できないので、pressedhoveredhighlightedfocused 状態は適用されない。しかし、disabled は、checkedvertical のような状態と組み合わせることができます。

状態が深くネストされているほど、その資格は高くなる。たとえば、hoveredpressed の両方がアクティブな場合、hovered.pressed.background.colorhovered.background.color より優先される。入れ子の順序は問題ではない。hovered.pressedpressed.hovered は等価である。しかし、両方のフォームが同時に使用された場合、どちらが勝つかは未定義である。

状態のより深い入れ子は、競合を解決するために使用することもできる。hoveredchecked の両方に同じプロパティが設定されている場合、優先順位はhovered の値が勝つことを意味します。チェックされた値を優先したい場合、またはそのような状況でまったく異なる値を使用したい場合は、hovered.checked のプロパティをオーバーライドすることができます。

次のスニペットは、ボタンの状態によってスタイルを変える方法を示しています:

button {
    text.color: "white"
    background.color: "cornflowerblue"

    pressed.background.color: "cadetblue"
    hovered.background.color: "dodgerblue"
    highlighted.background.color: "lightblue"
    focused.background.color: "lightskyblue"
    checked.background.color: "darkseagreen"
    disabled.background.color: "gray"

    // hovered.checked takes precedence over both hovered and checked
    hovered.checked.background.color: "mediumseagreen"

    hovered.checked {
        // Nested states are grouped properties, so you can use the compact
        // per-property form above, or structure them hierarchically for
        // better readability. Both forms are functionally equivalent.
        pressed {
            // hovered.checked.pressed takes precedence over hovered.checked
            background {
                color: "mediumaquamarine"
                scale: 0.95
            }
            text {
                bold: true
            }
        }
    }
}

注意: Qt.lab モジュールの型は、将来のバージョンでも互換性が保たれることを保証するものではありません。

ControlStyle,DelegateStyle,FallbackStyle Referenceも参照してください

プロパティのドキュメント

checked : ControlStateStyle

コントロールがchecked のときに適用されるスタイル・オーバーライド。

pressed,hovered,highlighted,focused,vertical,disabled,StyleReader.checkedも参照してください

disabled : ControlStateStyle

コントロールが無効なときに適用されるスタイル・オーバーライド。

無効化されたコントロールは操作できないため、pressedhoveredhighlightedfocused は無効化と同時に適用されません。

pressed,hovered,highlighted,focused,checked,vertical, StyleReader.disabledも参照してください

focused : ControlStateStyle

コントロールがfocused のときに適用されるスタイル・オーバーライド。

pressed,hovered,highlighted,checked,vertical,disabled,StyleReader.focusedも参照してください

highlighted : ControlStateStyle

コントロールがhighlighted のときに適用されるスタイル・オーバーライド。

pressed,hovered,focused,checked,vertical,disabled,StyleReader.highlightedも参照してください

hovered : ControlStateStyle

コントロールがhovered のときに適用されるスタイル・オーバーライド。

pressed,highlighted,focused,checked,vertical,disabled,StyleReader.hoveredも参照してください

pressed : ControlStateStyle

コントロールがpressed のときに適用されるスタイル・オーバーライド。

hovered,highlighted,focused,checked,vertical,disabled,StyleReader.pressedも参照してください

vertical : ControlStateStyle

コントロールがvertical の場合に適用されるスタイルオーバーライド(例:縦書きSlider またはScrollBar )。

pressed,hovered,highlighted,focused,checked,disabled,StyleReader.verticalも参照してください

© 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.