Binding QML Type
속성 바인딩을 임의로 생성할 수 있습니다. 자세히...
Import Statement: | import QtQml |
속성
- delayed : bool
- property : string
- restoreMode : enumeration
- target : QtObject
- value : var
- when : bool
자세한 설명
QML에서 속성 바인딩은 서로 다른 객체의 속성 간에 종속성을 초래합니다.
접근 불가능한 프로퍼티에 바인딩하기
C++에서 QML로 내보낸 클래스의 속성처럼 QML에서 직접 인스턴스화되지 않은 다른 객체의 속성에 객체의 속성을 바인딩해야 하는 경우가 있습니다. 바인딩 유형을 사용하여 이러한 종속성을 설정할 수 있으며, 어떤 값을 어떤 객체의 프로퍼티에 바인딩할 수 있습니다.
예를 들어, "app.enteredText" 속성을 QML에 매핑하는 C++ 애플리케이션에서 Binding을 사용하여 enteredText 속성을 업데이트할 수 있습니다.
TextEdit { id: myTextField; text: "Please type here..." } Binding { app.enteredText: myTextField.text }
text
이 변경되면 C++ 속성 enteredText
이 자동으로 업데이트됩니다.
조건부 바인딩
특정 조건이 충족되면 속성 값을 수정하고 그렇지 않으면 수정하지 않은 채로 두어야 하는 경우가 있습니다. 모든 가능한 분기에 대한 값을 제공해야 하므로 직접 바인딩으로는 이 작업을 수행할 수 없는 경우가 많습니다.
예를 들어 아래 코드 스니펫은 마우스를 놓을 때마다 경고를 표시합니다. 이는 마우스를 누르지 않을 때 바인딩 값이 정의되지 않았기 때문입니다.
// produces warning: "Unable to assign [undefined] to double value" value: if (mouse.pressed) mouse.mouseX
바인딩 유형을 사용하면 이 경고를 방지할 수 있습니다.
Binding on value { when: mouse.pressed value: mouse.mouseX }
바인딩 유형은 프로퍼티에 이전에 설정된 모든 직접 바인딩을 복원합니다.
또한 Qt Qml.
속성 문서
delayed : bool |
이 속성은 바인딩을 지연시킬지 여부를 보유합니다.
지연된 바인딩은 대상을 즉시 업데이트하지 않고 이벤트 큐가 지워질 때까지 기다립니다. 이는 최적화를 위해 또는 중간 값이 할당되지 않도록 하기 위해 사용할 수 있습니다.
Binding { contactName.text.value: givenName + " " + familyName when: list.ListView.isCurrentItem delayed: true }
property : string |
업데이트할 프로퍼티입니다.
표현식으로 인해 값 유형의 프로퍼티에 액세스하는 경우 그룹 프로퍼티가 될 수 있습니다. 예를 들어
Item { id: item property rect rectangle: Qt.rect(0, 0, 200, 200) } Binding { target: item property: "rectangle.x" value: 100 }
바인딩 대상을 선언적으로 제공할 수 없는 경우에만 이 속성을 사용해야 합니다. 다음 코드 조각은 위의 바인딩과 동일하지만 더 간결합니다:
Binding { item.rectangle.x: 100 }
restoreMode : enumeration |
이 속성은 바인딩이 비활성화되었을 때 원래 값을 복원해야 하는지 여부와 복원 방법을 설명하는 데 사용할 수 있습니다.
가능한 값은 다음과 같습니다:
Constant | 설명 |
---|---|
Binding.RestoreNone | 원래 값이 전혀 복원되지 않습니다. |
Binding.RestoreBinding | 원래 값이 다른 바인딩인 경우 원래 값이 복원됩니다. 이 경우 이전 바인딩이 다시 적용됩니다. |
Binding.RestoreValue | 바인딩이 아닌 일반 값인 경우 원래 값이 복원됩니다. |
Binding.RestoreBindingOrValue | 원래 값은 항상 복원됩니다. |
기본값은 Binding.RestoreBindingOrValue
입니다.
참고: 이 속성은 이전 버전의 Qt와의 하위 호환성을 위해 존재합니다. 새 코드에서는 사용하지 마세요.
target : QtObject |
value : var |
대상 객체 및 프로퍼티에 설정할 값입니다. 상수(그다지 유용하지 않음) 또는 바인딩된 표현식일 수 있습니다.
바인딩 대상을 선언적으로 제공할 수 없는 경우에만 이 속성을 사용해야 합니다. 그렇지 않으면 대상에 직접 바인딩할 수 있습니다.
when : bool |
이 속성은 바인딩이 활성화되어 있을 때 유지됩니다. 바인딩을 활성화하려면 바인딩이 활성화될 때 true로 평가되는 표현식으로 설정해야 합니다.
Binding { contactName.text: name when: list.ListView.isCurrentItem }
기본적으로 바인딩이 비활성 상태가 되면 눈에 띄지 않게 설정된 모든 바인딩 또는 값이 복원됩니다. restoreMode 속성을 사용하여 복원 동작을 사용자 지정할 수 있습니다.
restoreMode 를참조하세요 .
© 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.