1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html><head><title>QDeclarativePropertyMap Class Reference</title><style>h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
td.postheader { font-family: sans-serif }
tr.address { font-family: sans-serif }
body { background: #ffffff; color: black; }
</style></head><body><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr /><td align="left" valign="top" width="32"><img align="left" border="0" height="32" src="images/rb-logo.png" width="32" /></td><td width="1">  </td><td class="postheader" valign="center"><a href="index.html"><font color="#004faf">Home</font></a> · <a href="classes.html"><font color="#004faf">All Classes</font></a> · <a href="modules.html"><font color="#004faf">Modules</font></a></td></table><h1 align="center">QDeclarativePropertyMap Class Reference<br /><sup><sup>[<a href="qtdeclarative.html">QtDeclarative</a> module]</sup></sup></h1><p>The QDeclarativePropertyMap class allows you to set key-value
pairs that can be used in QML bindings. <a href="#details">More...</a></p>
<p>Inherits <a href="qobject.html">QObject</a>.</p><h3>Methods</h3><ul><li><div class="fn" /><b><a href="qdeclarativepropertymap.html#QDeclarativePropertyMap">__init__</a></b> (<i>self</i>, QObject <i>parent</i> = None)</li><li><div class="fn" /><b><a href="qdeclarativepropertymap.html#clear">clear</a></b> (<i>self</i>, QString <i>key</i>)</li><li><div class="fn" />bool <b><a href="qdeclarativepropertymap.html#contains">contains</a></b> (<i>self</i>, QString <i>key</i>)</li><li><div class="fn" />int <b><a href="qdeclarativepropertymap.html#count">count</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qdeclarativepropertymap.html#insert">insert</a></b> (<i>self</i>, QString <i>key</i>, QVariant <i>value</i>)</li><li><div class="fn" />bool <b><a href="qdeclarativepropertymap.html#isEmpty">isEmpty</a></b> (<i>self</i>)</li><li><div class="fn" />QStringList <b><a href="qdeclarativepropertymap.html#keys">keys</a></b> (<i>self</i>)</li><li><div class="fn" />int <b><a href="qdeclarativepropertymap.html#size">size</a></b> (<i>self</i>)</li><li><div class="fn" />QVariant <b><a href="qdeclarativepropertymap.html#value">value</a></b> (<i>self</i>, QString <i>key</i>)</li></ul><h3>Special Methods</h3><ul><li><div class="fn" />QVariant <b><a href="qdeclarativepropertymap.html#__getitem__">__getitem__</a></b> (<i>self</i>, QString <i>key</i>)</li><li><div class="fn" /> <b><a href="qdeclarativepropertymap.html#__len__">__len__</a></b> (<i>self</i>)</li></ul><h3>Qt Signals</h3><ul><li><div class="fn" />void <b><a href="qdeclarativepropertymap.html#valueChanged">valueChanged</a></b> (const QString&,const QVariant&)</li></ul><a name="details" /><hr /><h2>Detailed Description</h2><p>The QDeclarativePropertyMap class allows you to set key-value
pairs that can be used in QML bindings.</p>
<p>QDeclarativePropertyMap provides 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.</p>
<p>In the C++ file:</p>
<pre class="cpp">
<span class="comment">// create our data</span>
<span class="type">QDeclarativePropertyMap</span> ownerData;
ownerData<span class="operator">.</span><a href="qdeclarativepropertymap.html#insert">insert</a>(<span class="string">"name"</span><span class="operator">,</span> <span class="type"><a href="qvariant.html">QVariant</a></span>(<span class="type"><a href="qstring.html">QString</a></span>(<span class="string">"John Smith"</span>)));
ownerData<span class="operator">.</span><a href="qdeclarativepropertymap.html#insert">insert</a>(<span class="string">"phone"</span><span class="operator">,</span> <span class="type"><a href="qvariant.html">QVariant</a></span>(<span class="type"><a href="qstring.html">QString</a></span>(<span class="string">"555-5555"</span>)));
<span class="comment">// expose it to the UI layer</span>
<span class="type"><a href="qdeclarativeview.html">QDeclarativeView</a></span> view;
<span class="type"><a href="qdeclarativecontext.html">QDeclarativeContext</a></span> <span class="operator">*</span>ctxt <span class="operator">=</span> view<span class="operator">.</span>rootContext();
ctxt<span class="operator">-</span><span class="operator">></span>setContextProperty(<span class="string">"owner"</span><span class="operator">,</span> <span class="operator">&</span>ownerData);
view<span class="operator">.</span>setSource(<span class="type"><a href="qurl.html">QUrl</a></span><span class="operator">.</span>fromLocalFile(<span class="string">"main.qml"</span>));
view<span class="operator">.</span>show();
</pre>
<p>Then, in <tt>main.qml</tt>:</p>
<pre class="cpp">
Text { text: owner<span class="operator">.</span>name <span class="operator">+</span> <span class="string">" "</span> <span class="operator">+</span> owner<span class="operator">.</span>phone }
</pre>
<p>The binding is dynamic - whenever a key's value is updated,
anything bound to that key will be updated as well.</p>
<p>To detect value changes made in the UI layer you can connect to
the <a href="qdeclarativepropertymap.html#valueChanged">valueChanged</a>()
signal. However, note that <a href="qdeclarativepropertymap.html#valueChanged">valueChanged</a>() is
<b>NOT</b> emitted when changes are made by calling <a href="qdeclarativepropertymap.html#insert">insert</a>() or <a href="qdeclarativepropertymap.html#clear">clear</a>() - it is only
emitted when a value is updated from QML.</p>
<p><b>Note:</b> 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.</p>
<hr /><h2>Method Documentation</h2><h3 class="fn"><a name="QDeclarativePropertyMap" />QDeclarativePropertyMap.__init__ (<i>self</i>, <a href="qobject.html">QObject</a> <i>parent</i> = None)</h3><p>The <i>parent</i> argument, if not None, causes <i>self</i> to be owned by Qt instead of PyQt.</p><p>Constructs a bindable map with parent object <i>parent</i>.</p>
<h3 class="fn"><a name="clear" />QDeclarativePropertyMap.clear (<i>self</i>, QString <i>key</i>)</h3><p>Clears the value (if any) associated with <i>key</i>.</p>
<h3 class="fn"><a name="contains" />bool QDeclarativePropertyMap.contains (<i>self</i>, QString <i>key</i>)</h3><p>Returns true if the map contains <i>key</i>.</p>
<p><b>See also</b> <a href="qdeclarativepropertymap.html#size">size</a>().</p>
<h3 class="fn"><a name="count" />int QDeclarativePropertyMap.count (<i>self</i>)</h3><p>This is an overloaded function.</p>
<p>Same as <a href="qdeclarativepropertymap.html#size">size</a>().</p>
<h3 class="fn"><a name="insert" />QDeclarativePropertyMap.insert (<i>self</i>, QString <i>key</i>, QVariant <i>value</i>)</h3><p>Sets the value associated with <i>key</i> to <i>value</i>.</p>
<p>If the key doesn't exist, it is automatically created.</p>
<h3 class="fn"><a name="isEmpty" />bool QDeclarativePropertyMap.isEmpty (<i>self</i>)</h3><p>Returns true if the map contains no keys; otherwise returns
false.</p>
<p><b>See also</b> <a href="qdeclarativepropertymap.html#size">size</a>().</p>
<h3 class="fn"><a name="keys" />QStringList QDeclarativePropertyMap.keys (<i>self</i>)</h3><p>Returns the list of keys.</p>
<p>Keys that have been cleared will still appear in this list, even
though their associated values are invalid <a href="qtwebkit-bridge.html#qvariants">QVariants</a>.</p>
<h3 class="fn"><a name="size" />int QDeclarativePropertyMap.size (<i>self</i>)</h3><p>Returns the number of keys in the map.</p>
<p><b>See also</b> <a href="qdeclarativepropertymap.html#isEmpty">isEmpty</a>() and <a href="qdeclarativepropertymap.html#count">count</a>().</p>
<h3 class="fn"><a name="value" />QVariant QDeclarativePropertyMap.value (<i>self</i>, QString <i>key</i>)</h3><p>Returns the value associated with <i>key</i>.</p>
<p>If no value has been set for this key (or if the value has been
cleared), an invalid <a href="qvariant.html">QVariant</a> is
returned.</p>
<h3 class="fn"><a name="__getitem__" />QVariant QDeclarativePropertyMap.__getitem__ (<i>self</i>, QString <i>key</i>)</h3><h3 class="fn"><a name="__len__" /> QDeclarativePropertyMap.__len__ (<i>self</i>)</h3><hr /><h2>Qt Signal Documentation</h2><h3 class="fn"><a name="valueChanged" />void valueChanged (const QString&,const QVariant&)</h3><p>This is the default overload of this signal.</p><p>This signal is emitted whenever one of the values in the map is
changed. <i>key</i> is the key corresponding to the <i>value</i>
that was changed.</p>
<p><b>Note:</b> valueChanged() is <b>NOT</b> emitted when changes
are made by calling <a href="qdeclarativepropertymap.html#insert">insert</a>() or <a href="qdeclarativepropertymap.html#clear">clear</a>() - it is only
emitted when a value is updated from QML.</p>
<address><hr /><div align="center"><table border="0" cellspacing="0" width="100%"><tr class="address"><td align="left" width="25%">PyQt 4.11.2 for X11</td><td align="center" width="50%">Copyright © <a href="http://www.riverbankcomputing.com">Riverbank Computing Ltd</a> and <a href="http://qt.digia.com">Digia</a> 2014</td><td align="right" width="25%">Qt 4.8.6</td></tr></table></div></address></body></html>
|