- Qt 6.9
- Qt Quick
- QML Types
- StateGroup
- Qt 6.9.3 Reference Documentation

# StateGroup QML Type

Provides built-in state support for non-Item types. More...

Import Statement: | `import QtQuick`

- List of all members, including inherited members

## Properties

- state : string
- states : list<State>
- transitions : list<Transition>

## Detailed Description

Item (and all derived types) provides built in support for states and transitions via its state, states and transitions properties. StateGroup provides an easy way to use this support in other (non-Item-derived) types.

     MyCustomObject {
         StateGroup {
             id: myStateGroup
             states: State {
                 name: "state1"
                 // ...
             }
             transitions: Transition {
                 // ...
             }
         }

         onSomethingHappened: myStateGroup.state = "state1";
     }

See also Qt Quick States, Transitions, and Qt Qml.

## Property Documentation

state : string

This property holds the name of the current state of the state group.

This property is often used in scripts to change between states. For example:

     function toggle() {
         if (button.state == 'On')
             button.state = 'Off';
         else
             button.state = 'On';
     }

If the state group is in its base state (i.e. no explicit state has been set), `state` will be a blank string. Likewise, you can return a state group to its base state by setting its current state to `''`.

See also Qt Quick States.

states : list<State>

This property holds a list of states defined by the state group.

     StateGroup {
         states: [
             State {
                 // State definition...
             },
             State {
                 // ...
             }
             // Other states...
         ]
     }

See also Qt Quick States.

transitions : list<Transition>

This property holds a list of transitions defined by the state group.

     StateGroup {
         transitions: [
             Transition {
               // ...
             },
             Transition {
               // ...
             }
             // ...
         ]
     }

See also Transitions.