이 페이지에서

QQmlProperty Class

QQmlProperty 클래스는 QML로 생성된 객체의 속성에 접근하는 기능을 추상화합니다. 더 보기...

헤더: #include <QQmlProperty>
CMake: find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake: QT += qml
QML에서: qmlProperty

공개 타입

enum PropertyTypeCategory { InvalidCategory, List, Object, Normal }
enum Type { Invalid, Property, SignalProperty }

속성

공개 함수

QQmlProperty()
QQmlProperty(QObject *obj)
QQmlProperty(QObject *obj, QQmlContext *ctxt)
QQmlProperty(QObject *obj, QQmlEngine *engine)
QQmlProperty(QObject *obj, const QString &name)
QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)
QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)
QQmlProperty(const QQmlProperty &other)
bool connectNotifySignal(QObject *dest, const char *slot) const
bool connectNotifySignal(QObject *dest, int method) const
bool hasNotifySignal() const
int index() const
bool isDesignable() const
bool isProperty() const
bool isResettable() const
bool isSignalProperty() const
bool isValid() const
bool isWritable() const
QMetaMethod method() const
QString name() const
bool needsNotifySignal() const
QObject *object() const
QMetaProperty property() const
QMetaType propertyMetaType() const
int propertyType() const
QQmlProperty::PropertyTypeCategory propertyTypeCategory() const
const char *propertyTypeName() const
QVariant read() const
bool reset() const
QQmlProperty::Type type() const
bool write(const QVariant &value) const
QQmlProperty &operator=(const QQmlProperty &other)
bool operator==(const QQmlProperty &other) const

정적 공용 멤버

QVariant read(const QObject *object, const QString &name)
QVariant read(const QObject *object, const QString &name, QQmlContext *ctxt)
QVariant read(const QObject *object, const QString &name, QQmlEngine *engine)
bool write(QObject *object, const QString &name, const QVariant &value)
bool write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt)
bool write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine)

상세 설명

QML은 Qt의 메타타입 시스템을 사용하므로, 기존의 모든 QMetaObject 클래스를 활용하여 QML로 생성된 객체를 검사하고 상호작용할 수 있습니다. 그러나 타입 안전성이나 부착 속성과 같은 QML이 제공하는 일부 새로운 기능은, 이러한 기능들이 지닌 본질적인 복잡성을 단순화해 주는 QQmlProperty 클래스를 통해 가장 쉽게 사용할 수 있습니다.

QMetaProperty 가 클래스 유형의 속성을 나타내는 것과는 달리, QQmlProperty는 특정 객체 인스턴스의 속성을 캡슐화합니다. 속성의 값을 읽으려면 프로그래머는 QQmlProperty 인스턴스를 생성하고 read() 메서드를 호출합니다. 마찬가지로 속성 값을 쓰려면 write() 메서드를 사용합니다.

예를 들어, 다음 QML 코드의 경우:

// MyItem.qml
import QtQuick 2.0

Text { text: "A bit of text" }

Text 객체의 속성은 다음과 같이 QQmlProperty를 사용하여 접근할 수 있습니다:

#include <QQmlProperty>
#include <QGraphicsObject>

...

QQuickView view(QUrl::fromLocalFile("MyItem.qml"));
QQmlProperty property(view.rootObject(), "font.pixelSize");
qWarning() << "Current pixel size:" << property.read().toInt();
property.write(24);
qWarning() << "Pixel size should now be 24:" << property.read().toInt();

회원 유형 설명서

enum QQmlProperty::PropertyTypeCategory

이 열거형은 QML 속성의 범주를 지정합니다.

상수값설명
QQmlProperty::InvalidCategory0이 속성은 유효하지 않거나 신호 속성입니다.
QQmlProperty::List1이 속성은 ` QQmlListProperty ` 목록 속성입니다.
QQmlProperty::Object2이 속성은 QObject 파생형 포인터입니다.
QQmlProperty::Normal3이 속성은 일반 값 속성입니다.

enum QQmlProperty::Type

이 열거형은 QML 속성의 유형을 지정합니다.

상수값설명
QQmlProperty::Invalid0이 속성은 유효하지 않습니다.
QQmlProperty::Property1이 속성은 일반 Qt 속성입니다.
QQmlProperty::SignalProperty2이 속성은 신호 속성입니다.

속성 설명서

[read-only] name : const QString

이 속성은 QML 속성의 이름을 저장합니다.

액세스 함수:

QString name() const

QQmlProperty::object도 참조하십시오 .

[read-only] object : QObject* const

이 속성은 QML 속성으로 표현되는 QObject 를 포함합니다.

액세스 함수:

QObject *object() const

QQmlProperty::name도 참조하십시오 .

멤버 함수 문서

QQmlProperty::QQmlProperty()

유효하지 않은 QQmlProperty를 생성합니다.

QQmlProperty::QQmlProperty(QObject *obj)

obj 의 기본 속성에 대한 QQmlProperty를 생성합니다. 기본 속성이 없는 경우, 유효하지 않은 QQmlProperty가 생성됩니다.

QQmlProperty::QQmlProperty(QObject *obj, QQmlContext *ctxt)

context ( ctxt)를 사용하여 obj 의 기본 속성에 대한 QQmlProperty를 생성합니다. 기본 속성이 없는 경우, 유효하지 않은 QQmlProperty가 생성됩니다.

QQmlProperty::QQmlProperty(QObject *obj, QQmlEngine *engine)

engine 에서 제공하는 QML 컴포넌트 인스턴스화 환경을 사용하여 obj 의 기본 속성에 대한 QQmlProperty를 생성합니다. 기본 속성이 없는 경우, 유효하지 않은 QQmlProperty가 생성됩니다.

QQmlProperty::QQmlProperty(QObject *obj, const QString &name)

obj 의 name 속성에 대한 QQmlProperty를 생성합니다.

QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)

context ( ctxt)를 사용하여 obj 의 속성인 name 에 대한 QQmlProperty를 생성합니다.

컨텍스트 없이 QQmlProperty를 생성하면, 부착 속성(attached properties)과 같은 일부 속성에 접근할 수 없게 됩니다.

QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)

engine 에서 제공하는 QML 컴포넌트 인스턴스화 환경을 사용하여, obj 의 name 속성에 대한 QQmlProperty를 생성합니다.

QQmlProperty::QQmlProperty(const QQmlProperty &other)

other 의 복사본을 만듭니다.

bool QQmlProperty::connectNotifySignal(QObject *dest, const char *slot) const

이 메타속성의 변경 알림 신호를 ` dest ` 객체의 지정된 ` slot `에 연결하고 `true`를 반환합니다. 이 메타속성이 일반적인 Qt 속성을 나타내지 않거나, 변경 알림 신호가 없거나, ` dest ` 객체에 지정된 ` slot`가 없는 경우 `false`를 반환합니다.

참고: ` slot `는 올바르게 식별될 수 있도록 `SLOT()` 매크로를 사용하여 전달해야 합니다.

bool QQmlProperty::connectNotifySignal(QObject *dest, int method) const

이 메타속성의 변경 알림 신호를 ` dest ` 객체의 지정된 ` method `에 연결하고 `true`를 반환합니다. 이 메타속성이 일반 Qt 속성을 나타내지 않거나, 변경 알림 신호가 없거나, ` dest ` 객체에 지정된 ` method`가 없는 경우 `false`를 반환합니다.

bool QQmlProperty::hasNotifySignal() const

해당 속성에 변경 알림 신호가 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

int QQmlProperty::index() const

속성의 Qt 메타오브젝트 인덱스를 반환합니다.

bool QQmlProperty::isDesignable() const

해당 속성이 디자인 가능한 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.

bool QQmlProperty::isProperty() const

이 ` QQmlProperty `가 일반적인 Qt 속성을 나타내는 경우 true를 반환합니다.

bool QQmlProperty::isResettable() const

속성이 재설정 가능한 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.

bool QQmlProperty::isSignalProperty() const

이 ` QQmlProperty `가 QML 신호 속성을 나타내는 경우 true를 반환합니다.

bool QQmlProperty::isValid() const

QQmlProperty 가 유효한 속성을 가리키는 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.

bool QQmlProperty::isWritable() const

속성이 쓰기 가능한 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.

QMetaMethod QQmlProperty::method() const

이 속성이 ‘ SignalProperty ’인 경우 해당 속성의 ‘ QMetaMethod ’를 반환하고, 그렇지 않은 경우 ‘ QMetaMethod ’을 반환합니다.

QString QQmlProperty::name() const

이 QML 속성의 이름을 반환합니다.

참고: property name에 대한게터 함수입니다.

bool QQmlProperty::needsNotifySignal() const

속성이 바인딩을 최신 상태로 유지하기 위해 변경 알림 신호가 필요한 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.

부착 속성이나 값이 절대 변경되지 않는 속성과 같은 일부 속성은 변경 알림자가 필요하지 않습니다.

QObject *QQmlProperty::object() const

QQmlProperty 의 QObject 를 반환합니다.

참고: 속성 객체에 대한게터 함수입니다.

QMetaProperty QQmlProperty::property() const

이 QML 속성과 연관된 ` Qt property `를 반환합니다.

QMetaType QQmlProperty::propertyMetaType() const

속성의 메타타입을 반환합니다.

propertyType도 참조하십시오 .

int QQmlProperty::propertyType() const

해당 속성의 메타타입 ID를 반환하거나, 속성에 메타타입이 없는 경우 ` QMetaType::UnknownType `를 반환합니다.

propertyMetaType도 참조하십시오 .

QQmlProperty::PropertyTypeCategory QQmlProperty::propertyTypeCategory() const

속성 ‘category’를 반환합니다.

const char *QQmlProperty::propertyTypeName() const

속성의 유형 이름을 반환하며, 속성에 유형 이름이 없는 경우에는 0을 반환합니다.

QVariant QQmlProperty::read() const

속성 값을 반환합니다.

[static] QVariant QQmlProperty::read(const QObject *object, const QString &name)

object 의 name 속성 값을 반환합니다. 이 메서드는 다음과 동일합니다:

QQmlProperty p(object, name);
p.read();

[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)

context ( ctxt)를 사용하여 object 의 ‘ name ’ 속성 값을 반환합니다. 이 메서드는 다음 코드와 동일합니다:

QQmlProperty p(object, name, context);
p.read();

[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)

engine 에서 제공하는 QML 컴포넌트 인스턴스화 환경을 사용하여 object 의 ` name ` 속성 값을 반환합니다. . . 이 메서드는 다음과 동일합니다:

QQmlProperty p(object, name, engine);
p.read();

bool QQmlProperty::reset() const

속성을 초기화하고, 해당 속성이 초기화 가능한 경우 true를 반환합니다. 속성이 초기화 불가능한 경우 아무런 작업도 수행되지 않으며 false가 반환됩니다.

QQmlProperty::Type QQmlProperty::type() const

속성의 유형을 반환합니다.

bool QQmlProperty::write(const QVariant &value) const

속성 값을 ` value`로 설정합니다. 성공 시 ` true `를 반환하고, 예를 들어 ` value `의 유형이 잘못되어 속성을 설정할 수 없는 경우에는 ` false `를 반환합니다.

[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value)

object 의 name 속성에 value 을 기록합니다. 이 메서드는 다음 코드와 동일합니다:

QQmlProperty p(object, name);
p.write(value);

성공 시 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt)

context ctxt 를 사용하여 object 의 name 속성에 value 를 기록합니다. 이 메서드는 다음 코드와 동일합니다:

QQmlProperty p(object, name, ctxt);
p.write(value);

성공 시 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.

[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine)

engine 에서 제공하는 QML 컴포넌트 인스턴스화 환경을 사용하여, object 의 name 속성에 value 을 기록합니다. 이 메서드는 다음 코드와 동일합니다:

QQmlProperty p(object, name, engine);
p.write(value);

성공 시 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

QQmlProperty &QQmlProperty::operator=(const QQmlProperty &other)

other 를 이 QQmlProperty 에 할당하세요.

bool QQmlProperty::operator==(const QQmlProperty &other) const

other 와 이 QQmlProperty 가 동일한 속성을 나타내는 경우 true를 반환합니다.

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