PySide6.QtQml.QQmlPropertyMap¶
- class QQmlPropertyMap¶
- The - QQmlPropertyMapclass allows you to set key-value pairs that can be used in QML bindings. More…- Synopsis¶- Methods¶- def - __init__()
- def - clear()
- def - contains()
- def - count()
- def - freeze()
- def - insert()
- def - isEmpty()
- def - keys()
- def - operator[]()
- def - size()
- def - value()
 - Virtual methods¶- def - updateValue()
 - Signals¶- def - valueChanged()
 - Note - This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE - Detailed Description¶- QQmlPropertyMapprovides a convenient way to expose domain data to the UI layer. The following example shows how you might declare data in C++ and then access it in QML.- In the C++ file: - // 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(); - Then, in - main.qml:- Text { text: owner.name + " " + owner.phone } - The binding is dynamic - whenever a key’s value is updated, anything bound to that key will be updated as well. - To detect value changes made in the UI layer you can connect to the - valueChanged()signal. However, note that- valueChanged()is NOT emitted when changes are made by calling- insert()or- clear()- it is only emitted when a value is updated from QML.- Note - It is not possible to remove keys from the map; once a key has been added, you can only modify or clear its associated value. - Note - When deriving a class from - QQmlPropertyMap, use the- protected two-argument constructorwhich ensures that the class is correctly registered with the Qt Meta-Object System.- Note - The QMetaObject of a - QQmlPropertyMapis dynamically generated and modified. Operations on that meta object are not thread safe, so applications need to take care to explicitly synchronize access to the meta object.- Constructs a bindable map with parent object - parent.- clear(key)¶
- Parameters:
- key – str 
 
 - Clears the value (if any) associated with - key.- contains(key)¶
- Parameters:
- key – str 
- Return type:
- bool 
 
 - Returns true if the map contains - key.- See also - count()¶
- Return type:
- int 
 
 - This is an overloaded function. - Same as - size().- freeze()¶
 - Disallows any further properties to be added to this property map. Existing properties can be modified or cleared. - In turn, an internal cache is turned on for the existing properties, which may result in faster access from QML. - insert(values)¶
- Parameters:
- values – Dictionary with keys of type .QString and values of type QVariant. 
 
 - Inserts the - valuesinto the- QQmlPropertyMap.- Keys that don’t exist are automatically created. - This method is substantially faster than calling - insert(key, value)many times in a row.- insert(key, value)
- Parameters:
- key – str 
- value – object 
 
 
 - Sets the value associated with - keyto- value.- If the key doesn’t exist, it is automatically created. - isEmpty()¶
- Return type:
- bool 
 
 - Returns true if the map contains no keys; otherwise returns false. - See also - keys()¶
- Return type:
- list of strings 
 
 - Returns the list of keys. - Keys that have been cleared will still appear in this list, even though their associated values are invalid QVariants. - operator(key)¶
- Parameters:
- key – str 
- Return type:
- object 
 
 - This is an overloaded function. - Same as - value().- size()¶
- Return type:
- int 
 
 - Returns the number of keys in the map. - updateValue(key, input)¶
- Parameters:
- key – str 
- input – object 
 
- Return type:
- object 
 
 - Returns the new value to be stored for the key - key. This function is provided to intercept updates to a property from QML, where the value provided from QML is- input.- Override this function to manipulate the property value as it is updated. Note that this function is only invoked when the value is updated from QML. - value(key)¶
- Parameters:
- key – str 
- Return type:
- object 
 
 - Returns the value associated with - key.- If no value has been set for this key (or if the value has been cleared), an invalid QVariant is returned. - valueChanged(key, value)¶
- Parameters:
- key – str 
- value – object 
 
 
 - This signal is emitted whenever one of the values in the map is changed. - keyis the key corresponding to the- valuethat was changed.