PropertyChanges QML Type
상태에 대한 새로운 속성 바인딩이나 값을 설명합니다. 더 보기...
| Import Statement: | import QtQuick |
속성
- explicit : bool
- restoreEntryValues : bool
- target : QtObject
상세 설명
PropertyChanges는 State 의 속성 값이나 바인딩을 정의하는 데 사용됩니다. 이를 통해 항목이 상태를 변경할 때 해당 항목의 속성 값을 변경할 수 있습니다.
PropertyChanges 객체를 생성하려면, 로컬 속성에 바인딩하는 것과 동일한 방식으로 대상 항목의 속성에 바인딩하십시오. 이렇게 하면 새로운 속성 값이나 바인딩을 정의할 수 있습니다. 예를 들어:
import QtQuick
Item {
id: container
width: 300; height: 300
Rectangle {
id: rect
width: 100; height: 100
color: "red"
MouseArea {
id: mouseArea
anchors.fill: parent
}
states: State {
name: "resized"; when: mouseArea.pressed
PropertyChanges {
rect {
color: "blue"
height: container.height
}
}
}
}
}마우스를 클릭하면 Rectangle 가 크기 조정된 상태로 변경됩니다. 이 상태에서 PropertyChanges 객체는 사각형의 색상을 파란색으로 설정하고, height 값을 container.height 의 값으로 설정합니다.
이 경우 크기 조정된 상태에서 ` rect.height `가 ` container.height `에 자동으로 바인딩된다는 점에 유의하십시오. 속성 바인딩을 설정하지 않고, 상태 변경 시점에 높이를 단순히 ` container.height `의 값으로만 설정해야 하는 경우, ` explicit ` 속성을 ` true`로 설정하십시오.
PropertyChanges 객체는 또한 객체의 기본 신호 핸들러를 재정의하여 새로운 상태에 특화된 신호 핸들러를 구현할 수도 있습니다:
PropertyChanges {
myMouseArea.onClicked: doSomethingDifferent()
}참고: PropertyChanges는 앵커 여백을 변경하는 데 사용할 수 있지만, 다른 앵커 값은 변경할 수 없습니다. 이 경우 대신 AnchorChanges 를 사용하십시오. 마찬가지로, Item 의 parent 값을 변경하려면 대신 ParentChange 를 사용하십시오.
속성 값 재설정
undefined 값을 사용하여 상태의 속성 값을 재설정할 수 있습니다. 다음 예제에서 myText 가 widerText 상태로 변경되면 width 속성이 재설정되어 텍스트가 자연스러운 너비를 가지게 되고, 전체 문자열이 한 줄에 표시됩니다.
Rectangle {
width: 300; height: 200
Text {
id: myText
width: 50
wrapMode: Text.WordWrap
text: "a text string that is longer than 50 pixels"
states: State {
name: "widerText"
PropertyChanges { myText.width: undefined }
}
}
MouseArea {
anchors.fill: parent
onClicked: myText.state = "widerText"
}
}전환 시의 즉각적인 속성 변경
전환(Transitions)을 사용하여 상태 변경을 애니메이션 처리할 때, 속성은 현재 상태의 값에서 새 상태에 정의된 값(PropertyChanges 객체에 의해 정의됨)으로 애니메이션됩니다. 그러나 때로는 애니메이션 없이 전환( Transition) 중에 속성 값을 즉시 설정해야 할 때가 있습니다. 이러한 경우, PropertyAction 유형을 사용하여 속성 변경을 즉시 강제할 수 있습니다.
자세한 내용은 PropertyAction 문서를 참조하십시오.
참고: Item 의 visible 및 enabled 속성은 PropertyChanges의 다른 속성과 정확히 동일하게 동작하지 않습니다. 이러한 속성은 상위 항목의 상태를 통해 암시적으로 변경될 수 있으므로, 모든 PropertyChanges에서 명시적으로 설정해야 합니다. 항목의 상위 항목 중 하나가 활성화되지 않았거나 표시되지 않은 경우, 해당 항목은 여전히 활성화되거나 표시되지 않습니다.
참고: Qt 5와의 하위 호환성을 위해 , target 속성을 사용하거나 ID 없이 일반 속성 이름(예: PropertyChanges { target: myItem; x: 15 })을 사용하여 PropertyChanges를 지정할 수도 있습니다. target 대신 ID를 사용하는 형식을 권장합니다. 또한 파일을 편집할 경우 target 형식을 사용해야 할 수도 있습니다 Qt Design Studio. 다음 사항에 유의하십시오. Qt Design Studio 이 방식은 처리할 수 있는 파일에 대해 몇 가지 추가적인 제한을 부과한다는 점에 유의하십시오.
'States' 예제, Qt Quick States 및 Qt Qml를 참조하십시오.
속성 문서
explicit : bool
explicit이 true로 설정되면 바인딩이 할당으로 해석됩니다. 표현식은 한 번만 평가되며, 종속성이 변경되더라도 업데이트는 발생하지 않습니다.
다음 예제에서, `explicit`을 추가함으로써 ` myItem.width `이 ` parent.width`에 바인딩되는 것을 방지합니다. 대신, 상태 변경 시점에 ` parent.width `의 값이 할당됩니다.
PropertyChanges {
target: myItem
explicit: true
width: parent.width
}기본적으로 `explicit`은 `false`입니다.
restoreEntryValues : bool
이 속성은 상태를 종료할 때 이전 값을 복원할지 여부를 지정합니다.
기본값은 ` true`입니다. 이 값을 ` false `로 설정하면 속성 값에 영구적인 영향을 미치는 임시 상태가 생성됩니다.
target : QtObject
이 속성은 변경할 속성을 포함하는 객체를 보관합니다.
참고: 일반적으로 이 속성을 사용할 필요는 없습니다 . 이 속성은 Qt 5 및 Qt Design Studio.
© 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.