이 페이지에서

QProperty Class

template <typename T> class QProperty

QProperty 클래스는 자동 속성 바인딩을 가능하게 하는 템플릿 클래스입니다. 더 보기...

헤더: #include <QProperty>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
다음부터: Qt 6.0
상속: QPropertyData

QProperty 비교

범주비교 가능한 유형
동등성QProperty
동등성T.

공개 함수

QProperty()
QProperty(Functor &&f)
QProperty(T &&initialValue)
QProperty(const QPropertyBinding<T> &binding)
QProperty(const T &initialValue)
~QProperty()
(since 6.2) QPropertyNotifier addNotifier(Functor f)
QPropertyBinding<T> binding() const
QPropertyChangeHandler<Functor> onValueChanged(Functor f)
QPropertyBinding<T> setBinding(const QPropertyBinding<T> &newBinding)
(since 6.0) QPropertyBinding<T> setBinding(Functor f)
bool setBinding(const QUntypedPropertyBinding &newBinding)
void setValue(QProperty<T>::parameter_type newValue)
void setValue(QProperty<T>::rvalue_ref newValue)
(since 6.0) QPropertyChangeHandler<Functor> subscribe(Functor f)
QPropertyBinding<T> takeBinding()
QProperty<T>::parameter_type value() const
QProperty<T> &operator=(QProperty<T>::parameter_type newValue)
QProperty<T> &operator=(QProperty<T>::rvalue_ref newValue)
(since 6.2) void beginPropertyUpdateGroup()
(since 6.2) void endPropertyUpdateGroup()

상세 설명

QProperty는 템플릿 매개변수 T 가 속성 값의 유형을 지정하는 템플릿 클래스입니다.

QProperty<T>는 Qt 바인딩 가능한 속성을 구현하는 클래스 중 하나입니다. 이는 T의 인스턴스를 보관하는 컨테이너입니다. 이 컨테이너에 값을 할당할 수 있으며, value() 함수나 T 변환 연산자를 통해 해당 값을 읽을 수 있습니다. 또한 이 속성을 값을 동적으로 계산하는 표현식, 즉 바인딩 표현식에 연결할 수도 있습니다. 이는 C++ 람다로 표현되며, 애플리케이션 내의 서로 다른 속성 간의 관계를 표현하는 데 사용할 수 있습니다.

참고: QML의 경우 , Q_PROPERTY 에서 BINDABLE 키워드와 함께 QProperty 를 노출하는 것이 중요합니다. 그 결과, QML 엔진은 이를 바인더블 인터페이스로 사용하여 속성 바인딩을 설정합니다. 그러면 바인딩은 일반적인 API를 통해 C++과 상호 작용할 수 있습니다: QProperty<T>::onValueChanged, QProperty::takeBinding 및 QBindable::hasBinding 속성이 BINDABLE인 경우, 엔진은 변경 사항에 대한 알림을 받기 위해 C++ 속성 시스템에 내재된 변경 추적 기능을 사용하며, 시그널 발송에 의존하지 않습니다.

멤버 함수 문서

[default] QProperty::QProperty()

T의 기본 생성된 인스턴스를 가진 속성을 생성합니다.

[explicit] template <typename Functor> QProperty::QProperty(Functor &&f)

지정된 바인딩 표현식 f 에 연결된 속성을 생성합니다. 이 속성의 값은 새로운 바인딩을 평가한 결과로 설정됩니다. 바인딩의 종속성이 변경될 때마다 바인딩이 재평가되며, 이에 따라 속성의 값도 업데이트됩니다.

[explicit implicit] QProperty::QProperty(T &&initialValue)

Move-Constructs는 제공된 initialValue 를 사용하여 속성을 생성합니다.

[explicit] QProperty::QProperty(const QPropertyBinding<T> &binding)

지정된 binding 표현식과 연결된 속성을 생성합니다. 이 속성의 값은 새 바인딩을 평가한 결과로 설정됩니다. 바인딩의 종속성이 변경될 때마다 바인딩이 다시 평가되며, 이에 따라 속성의 값이 업데이트됩니다.

[explicit implicit] QProperty::QProperty(const T &initialValue)

지정된 ` initialValue`을 사용하여 속성을 생성합니다.

[default] QProperty::~QProperty()

해당 속성을 삭제합니다.

[since 6.2] template <typename Functor> QPropertyNotifier QProperty::addNotifier(Functor f)

지정된 펑터 f 를 속성 값이 변경될 때마다 호출되는 콜백으로 등록합니다.

f 콜백은 매개변수가 없는 일반 호출 연산자 () 를 갖는 타입이어야 합니다. 즉, C++ 람다 표현식, std::function 또는 호출 연산자가 있는 사용자 정의 구조체도 제공할 수 있습니다.

반환된 속성 변경 핸들러 객체는 구독 상태를 추적합니다. 이 객체가 범위 밖으로 나가면 콜백의 구독이 해제됩니다.

반환되는 객체가 템플릿이 아니기 때문에, 이 메서드는 경우에 따라 onValueChanged()보다 사용하기 더 쉽습니다. 따라서 클래스의 멤버로 저장하는 등 더 쉽게 관리할 수 있습니다.

이 함수는 Qt 6.2에서 도입되었습니다.

onValueChanged() 및 subscribe()도 참조하십시오 .

QPropertyBinding<T> QProperty::binding() const

이 속성과 연결된 바인딩 표현식을 반환합니다. 해당 연결이 존재하지 않으면 기본 생성된 QPropertyBinding<T>가 반환됩니다.

setBinding()도 참조하십시오 .

template <typename Functor> QPropertyChangeHandler<Functor> QProperty::onValueChanged(Functor f)

주어진 펑터 f 를 속성의 값이 변경될 때마다 호출될 콜백으로 등록합니다. 값이 변경될 때마다 컨텍스트에 따라 핸들러가 즉시 호출되거나 지연되어 호출됩니다.

콜백 f 은 매개변수가 없는 일반 호출 연산자 () 를 갖는 유형이어야 합니다. 즉, C++ 람다 표현식, std::function 또는 호출 연산자가 있는 사용자 정의 구조체도 제공할 수 있습니다.

반환된 속성 변경 핸들러 객체는 등록 상태를 추적합니다. 이 객체가 범위 밖으로 나가면 콜백이 등록 해제됩니다.

QPropertyBinding<T> QProperty::setBinding(const QPropertyBinding<T> &newBinding)

이 속성의 값을 제공된 newBinding 표현식과 연결하고, 이전에 연결된 바인딩을 반환합니다. 속성의 값은 새로운 바인딩을 평가한 결과로 설정됩니다. 바인딩의 종속성이 변경될 때마다 바인딩이 재평가되며, 속성의 값은 그에 따라 업데이트됩니다.

binding()도 참조하십시오 .

[since 6.0] template <typename Functor> QPropertyBinding<T> QProperty::setBinding(Functor f)

이 속성의 값을 제공된 펑터 f 와 연관시키고, 이전에 연관되었던 바인딩을 반환합니다. 속성의 값은 새로운 바인딩을 평가한 결과로 설정됩니다. 바인딩의 종속성이 변경될 때마다 바인딩이 재평가되며, 속성의 값도 그에 따라 업데이트됩니다.

이 함수는 오버로드된 함수입니다.

이 함수는 Qt 6.0에서 도입되었습니다.

‘속성 바인딩 구성’항목도 참조하십시오 .

bool QProperty::setBinding(const QUntypedPropertyBinding &newBinding)

이 속성의 값을 제공된 newBinding 표현식과 연결합니다. 속성의 값은 새로운 바인딩을 평가한 결과로 설정됩니다. 바인딩의 종속성이 변경될 때마다 바인딩이 재평가되며, 이에 따라 속성의 값이 업데이트됩니다.

이 속성의 유형이 바인딩 함수가 반환하는 유형과 동일한 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.

이 함수는 오버로드된 함수입니다.

void QProperty::setValue(QProperty<T>::parameter_type newValue)

void QProperty::setValue(QProperty<T>::rvalue_ref newValue)

이 속성에 ` newValue `를 할당하고, 해당 속성에 바인딩이 설정되어 있는 경우 이를 제거합니다.

[since 6.0] template <typename Functor> QPropertyChangeHandler<Functor> QProperty::subscribe(Functor f)

주어진 펑터 f 를 콜백으로 등록하여, 해당 속성의 값이 변경될 때마다 즉시 호출되도록 합니다. 값이 변경될 때마다 컨텍스트에 따라 핸들러가 즉시 호출되거나 지연되어 호출됩니다.

f 콜백은 복사 가능한 유형이어야 하며, 매개변수가 없는 단순한 호출 연산자()를 가져야 합니다. 즉, C++ 람다 표현식, std::function 또는 호출 연산자가 있는 사용자 정의 구조체도 제공할 수 있습니다.

반환된 속성 변경 핸들러 객체는 구독 상태를 추적합니다. 이 객체가 범위 밖으로 나가면 콜백 구독이 해제됩니다.

이 함수는 Qt 6.0에서 도입되었습니다.

QPropertyBinding<T> QProperty::takeBinding()

이 속성에서 바인딩 표현식을 분리하고 해당 표현식을 반환합니다. 이 함수를 호출한 후에는, 속성의 값은 새로운 값을 할당하거나 새로운 바인딩이 설정된 경우에만 변경됩니다.

QProperty<T>::parameter_type QProperty::value() const

속성의 값을 반환합니다. 이 함수는 값을 반환하기 전에, 해당 속성에 연결된 바인딩 표현식을 평가할 수 있습니다.

setValue()도 참조하십시오 .

QProperty<T> &QProperty::operator=(QProperty<T>::parameter_type newValue)

QProperty<T> &QProperty::operator=(QProperty<T>::rvalue_ref newValue)

이 속성에 ` newValue `를 할당하고, 이 ` QProperty`에 대한 참조를 반환합니다.

관련 비멤버

[since 6.2] void beginPropertyUpdateGroup()

속성 업데이트 그룹의 시작을 나타냅니다. 이 그룹 내에서 속성을 변경하더라도 종속 속성이 즉시 업데이트되지 않으며, 변경 알림도 트리거되지 않습니다. 대신, 이러한 작업들은 endPropertyUpdateGroup 호출을 통해 그룹이 종료될 때까지 보류됩니다.

그룹은 중첩될 수 있습니다. 이 경우, 가장 바깥쪽 그룹이 종료된 후에야 지연 처리가 종료됩니다.

참고: 변경 알림은 해당 그룹의 영향을 받는 모든 속성 값이 새로운 값으로 업데이트된 후에만 전송됩니다. 이를 통해 여러 속성을 업데이트해야 하는 경우에도 클래스 불변 조건을 재확립할 수 있어, 외부 관찰자가 일관성 없는 상태를 감지하는 것을 방지할 수 있습니다.

이 함수는 Qt 6.2에서 도입되었습니다.

Qt::endPropertyUpdateGroup 및 QScopedPropertyUpdateGroup도 참조하십시오 .

[since 6.2] void endPropertyUpdateGroup()

속성 업데이트 그룹을 종료합니다. 최상위 그룹이 종료된 경우, 이 시점에서 지연된 바인딩 평가 및 알림이 발생합니다.

경고: beginPropertyUpdateGroup 를 호출하지 않은 상태에서 endPropertyUpdateGroup을호출하면 정의되지 않은 동작이 발생합니다.

이 함수는 Qt 6.2에서 도입되었습니다.

Qt::beginPropertyUpdateGroup 및 QScopedPropertyUpdateGroup도 참조하십시오 .

© 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.