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" } }
트랜지션의 즉각적인 속성 변경
트랜지션을 사용하여 상태 변경에 애니메이션을 적용하면 프로퍼티가 현재 상태의 값에서 새 상태의 정의된 값(PropertyChanges 객체에 정의된 대로)으로 애니메이션됩니다. 그러나 애니메이션 없이 Transition 중에 속성 값을 즉시 설정하는 것이 바람직한 경우도 있으며, 이러한 경우 PropertyAction 유형을 사용하여 즉시 속성 변경을 강제할 수 있습니다.
자세한 내용은 PropertyAction 문서를 참조하세요.
참고: Item 의 visible 및 enabled 속성은 PropertyChanges의 다른 속성과 정확히 동일하게 동작하지 않습니다. 이러한 속성은 부모 상태를 통해 암시적으로 변경될 수 있으므로 모든 속성 변경에서 명시적으로 설정해야 합니다. 부모 중 하나가 활성화되지 않거나 표시되지 않으면 항목은 여전히 활성화/표시되지 않습니다.
참고: Qt 5와의 하위 호환성을 위해 target 프로퍼티와 ID가 없는 일반 프로퍼티 이름을 사용하여 PropertyChanges를 지정할 수도 있습니다. 예: PropertyChanges { target: myItem; x: 15 }
. target 대신 ID가 있는 양식을 사용하는 것이 좋습니다. 파일을 편집하려는 경우 target 와 함께 양식을 사용해야 할 수도 있습니다. Qt Design Studio. 주의 Qt Design Studio 는 작업할 수 있는 파일에 대해 여러 가지 추가 제한을 적용합니다.
상태 예제, Qt Quick 상태 및 Qt Qml.
속성 문서
explicit : bool |
명시적이 참으로 설정되면 모든 잠재적 바인딩은 상태가 입력될 때 발생하는 일회성 할당으로 해석됩니다.
다음 예제에서 명시적 추가는 myItem.width
이 parent.width
에 바인딩되는 것을 방지합니다. 대신 상태 변경 시 parent.width
값이 할당됩니다.
PropertyChanges { target: myItem explicit: true width: parent.width }
기본적으로 명시적은 false입니다.
restoreEntryValues : bool |
이 속성은 상태를 떠날 때 이전 값을 복원할지 여부를 보유합니다.
기본값은 true
입니다. 이 값을 false
으로 설정하면 속성 값에 영구적인 영향을 미치는 임시 상태가 만들어집니다.
target : QtObject |
이 속성은 변경할 속성이 포함된 개체를 보유합니다.
참고: 일반적으로 이 속성을 사용할 필요는 없습니다. 이 프로퍼티는 Qt 5와의 호환성 및 Qt Design Studio.
© 2025 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.