QQmlPropertyMap Class
QQmlPropertyMap 클래스를 사용하면 QML 바인딩에 사용할 수 있는 키-값 쌍을 설정할 수 있습니다. 더 보기...
Header: | #include <QQmlPropertyMap> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
qmake: | QT += qml |
상속합니다: | QObject |
공용 함수
QQmlPropertyMap(QObject *parent = nullptr) | |
virtual | ~QQmlPropertyMap() override |
void | clear(const QString &key) |
bool | contains(const QString &key) const |
int | count() const |
(since 6.1) void | freeze() |
(since 6.1) void | insert(const QVariantHash &values) |
void | insert(const QString &key, const QVariant &value) |
bool | isEmpty() const |
QStringList | keys() const |
int | size() const |
QVariant | value(const QString &key) const |
QVariant & | operator[](const QString &key) |
QVariant | operator[](const QString &key) const |
시그널
void | valueChanged(const QString &key, const QVariant &value) |
보호된 함수
QQmlPropertyMap(DerivedType *derived, QObject *parent) | |
virtual QVariant | updateValue(const QString &key, const QVariant &input) |
상세 설명
QQmlPropertyMap은 도메인 데이터를 UI 레이어에 노출하는 편리한 방법을 제공합니다. 다음 예제는 C++로 데이터를 선언한 다음 QML에서 액세스하는 방법을 보여줍니다.
C++ 파일에서:
// create our data QQmlPropertyMap ownerData; ownerData.insert("name", QVariant(QString("John Smith"))); ownerData.insert("phone", QVariant(QString("555-5555"))); // expose it to the UI layer QQuickView view; QQmlContext *ctxt = view.rootContext(); ctxt->setContextProperty("owner", &ownerData); view.setSource(QUrl::fromLocalFile("main.qml")); view.show();
그런 다음 main.qml
:
Text { text: owner.name + " " + owner.phone }
바인딩은 동적이므로 키의 값이 업데이트될 때마다 해당 키에 바인딩된 모든 항목도 업데이트됩니다.
UI 레이어에서 값 변경을 감지하려면 valueChanged() 신호에 연결하면 됩니다. 그러나 insert() 또는 clear()를 호출하여 변경이 이루어질 때는 valueChanged()가 발생하지 않으며, QML에서 값이 업데이트될 때만 발생한다는 점에 유의하세요.
참고: 맵에서 키를 제거할 수 없으며, 키가 추가된 후에는 관련 값을 수정하거나 지울 수만 있습니다.
참고: QQmlPropertyMap에서 클래스를 파생할 때는 protected two-argument constructor 을 사용하여 클래스가 Qt 메타 객체 시스템에 올바르게 등록되었는지 확인합니다.
참고: QQmlPropertyMap의 QMetaObject 은 동적으로 생성 및 수정됩니다. 해당 메타 객체에 대한 작업은 스레드 안전하지 않으므로 응용 프로그램에서 메타 객체에 대한 액세스를 명시적으로 동기화하도록 주의해야 합니다.
멤버 함수 문서
[explicit]
QQmlPropertyMap::QQmlPropertyMap(QObject *parent = nullptr)
부모 객체와 바인딩 가능한 맵을 구성합니다 parent.
[protected]
template <typename DerivedType> QQmlPropertyMap::QQmlPropertyMap(DerivedType *derived, QObject *parent)
부모 객체 parent 와 바인딩 가능한 맵을 생성합니다. QQmlPropertyMap에서 파생된 클래스에서 이 생성자를 사용합니다.
derived 유형은 메타객체 시스템에 속성 맵을 등록하는 데 사용되며, 이는 파생 클래스의 프로퍼티에 액세스할 수 있도록 하는 데 필요합니다. 이 유형은 QQmlPropertyMap에서 파생되어야 합니다.
[override virtual noexcept]
QQmlPropertyMap::~QQmlPropertyMap()
바인딩 가능한 맵을 삭제합니다.
void QQmlPropertyMap::clear(const QString &key)
key 에 연결된 값(있는 경우)을 지웁니다.
bool QQmlPropertyMap::contains(const QString &key) const
맵에 key 이 포함되어 있으면 true를 반환합니다.
size()도 참조하세요 .
int QQmlPropertyMap::count() const
이 함수는 과부하된 함수입니다.
size()와 동일합니다.
[since 6.1]
void QQmlPropertyMap::freeze()
이 속성 맵에 더 이상 속성을 추가할 수 없습니다. 기존 속성은 수정하거나 지울 수 있습니다.
그러면 기존 프로퍼티에 대한 내부 캐시가 켜지므로 QML에서 더 빠르게 액세스할 수 있습니다.
이 기능은 Qt 6.1에 도입되었습니다.
[since 6.1]
void QQmlPropertyMap::insert(const QVariantHash &values)
QQmlPropertyMap 에 values 을 삽입합니다.
존재하지 않는 키는 자동으로 생성됩니다.
이 방법은 insert(key, value)
을 여러 번 연속으로 호출하는 것보다 훨씬 빠릅니다.
이 함수는 Qt 6.1에 도입되었습니다.
void QQmlPropertyMap::insert(const QString &key, const QVariant &value)
key 에 연결된 값을 value 으로 설정합니다.
키가 존재하지 않으면 자동으로 생성됩니다.
bool QQmlPropertyMap::isEmpty() const
맵에 키가 없는 경우 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
size()도 참조하세요 .
[invokable]
QStringList QQmlPropertyMap::keys() const
키 목록을 반환합니다.
지워진 키는 관련 값이 유효하지 않은 QVariants이더라도 이 목록에 계속 표시됩니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 을 참조하십시오.
int QQmlPropertyMap::size() const
지도의 키 수를 반환합니다.
[virtual protected]
QVariant QQmlPropertyMap::updateValue(const QString &key, const QVariant &input)
키에 저장할 새 값을 반환합니다 key. 이 함수는 QML에서 프로퍼티에 대한 업데이트를 가로채기 위해 제공되며, 여기서 QML에서 제공된 값은 input 입니다.
업데이트될 때 속성 값을 조작하려면 이 함수를 재정의하십시오. 이 함수는 QML에서 값이 업데이트될 때만 호출된다는 점에 유의하세요.
QVariant QQmlPropertyMap::value(const QString &key) const
key 와 연관된 값을 반환합니다.
이 키에 설정된 값이 없거나 값이 지워진 경우 잘못된 QVariant 이 반환됩니다.
[signal]
void QQmlPropertyMap::valueChanged(const QString &key, const QVariant &value)
이 신호는 맵의 값 중 하나가 변경될 때마다 발생합니다. key 은 변경된 value 에 해당하는 키입니다.
QVariant &QQmlPropertyMap::operator[](const QString &key)
key 키와 연관된 값을 수정 가능한 참조로 반환합니다.
맵에 key 키가 있는 항목이 없는 경우 이 함수는 잘못된 QVariant 을 key 키가 있는 맵에 삽입하고 이에 대한 참조를 반환합니다.
QVariant QQmlPropertyMap::operator[](const QString &key) const
이 함수는 과부하된 함수입니다.
value()와 동일합니다.
© 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.