State QML Type
객체 및 속성의 구성을 정의합니다. 더 보기...
| Import Statement: | import QtQuick |
속성
상세 설명
상태는 기본 구성에서 일괄적으로 변경된 사항들의 집합입니다.
모든 항목에는 객체 및 속성 값의 기본 구성을 정의하는 기본 상태가 있습니다. ` states ` 속성에 `State` 항목을 추가하여 새로운 상태를 정의할 수 있으며, 이를 통해 항목이 서로 다른 구성 간에 전환될 수 있습니다. 이러한 구성은 예를 들어, 서로 다른 속성 값 세트를 적용하거나 서로 다른 스크립트를 실행하는 데 사용될 수 있습니다.
다음 예제는 단일 ‘ Rectangle ’을 보여줍니다. 기본 상태에서 사각형은 검은색으로 표시됩니다. “클릭됨(clicked)” 상태에서는 ‘ PropertyChanges ’ 객체가 사각형의 색상을 빨간색으로 변경합니다. MouseArea 내부를 클릭하면 사각형의 상태가 기본 상태와 “클릭됨” 상태 사이에서 전환되며, 이에 따라 사각형의 색상도 검은색과 빨간색 사이에서 바뀝니다.
import QtQuick
Rectangle {
id: myRect
width: 100; height: 100
color: "black"
MouseArea {
id: mouseArea
anchors.fill: parent
onClicked: myRect.state == 'clicked' ? myRect.state = "" : myRect.state = 'clicked';
}
states: [
State {
name: "clicked"
PropertyChanges { target: myRect; color: "red" }
}
]
}기본 상태는 빈 문자열("")을 사용하여 참조된다는 점에 유의하십시오.
상태는 일반적으로 전환(Transitions )과 함께 사용되어 상태 변경이 발생할 때 애니메이션을 제공합니다.
참고: 동일한 객체의 다른 상태에서 해당 객체의 상태를설정하는 것은 허용되지 않습니다.
'States 예제', 'Qt Quick '의 'States', 'Transitions' 및 Qt Qml참조.
속성 문서
changes : list<Change> [default read-only]
이 속성은 해당 상태에 적용할 변경 사항을 저장합니다.
기본적으로 이러한 변경 사항은 기본 상태에 적용됩니다. 해당 상태가 다른 상태를 상속하는 경우, 변경 사항은 상속받은 상태에 적용됩니다.
extend : string
이 속성은 이 상태가 상속하는 상태를 저장합니다.
한 상태가 다른 상태를 확장하면, 해당 상태의 모든 변경 사항을 상속받습니다.
상속받는 상태는 상속하는 상태가 지정한 변경 사항에 관해 기본 상태로 간주됩니다.
name : string
이 속성은 주(state)의 이름을 저장합니다.
각 상태는 해당 항목 내에서 고유한 이름을 가져야 합니다.
when : bool
이 속성은 상태를 적용해야 할 때 유효합니다.
상태를 적용하고자 할 때는 이 속성을 ` true `로 평가되는 표현식으로 설정해야 합니다. 예를 들어, 다음 ` Rectangle `은 ` MouseArea ` 키가 눌릴 때 "hidden" 상태로 전환되거나 그 상태에서 해제됩니다:
Rectangle {
id: myRect
width: 100; height: 100
color: "red"
MouseArea { id: mouseArea; anchors.fill: parent }
states: State {
name: "hidden"; when: mouseArea.pressed
PropertyChanges { target: myRect; opacity: 0 }
}
}그룹 내 여러 상태의 ` when ` 절이 동시에 ` true `로 평가될 경우, 가장 먼저 일치하는 상태가 적용됩니다. 예를 들어, 다음 코드 조각에서 `sharedCondition`이 ` true`가 되면 ` state2 ` 대신 항상 ` state1 `가 선택됩니다.
© 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.