Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > 6ed78e842caa17fd5c94d65d685685e0 > files > 51

qtscxml5-doc-5.12.6-1.mga7.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qscxmldatamodel.cpp -->
  <title>QScxmlDataModel Class | Qt SCXML 5.12.6</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td >Qt 5.12</td><td ><a href="qtscxml-index.html">Qt SCXML</a></td><td ><a href="qtscxml-module.html">C++ Classes</a></td><td >QScxmlDataModel</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qtscxml-index.html">Qt 5.12.6 Reference Documentation</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#public-types">Public Types</a></li>
<li class="level1"><a href="#properties">Properties</a></li>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#signals">Signals</a></li>
<li class="level1"><a href="#static-public-members">Static Public Members</a></li>
<li class="level1"><a href="#protected-functions">Protected Functions</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">QScxmlDataModel Class</h1>
<!-- $$$QScxmlDataModel-brief -->
<p>The <a href="qscxmldatamodel.html">QScxmlDataModel</a> class is the data model base class for a Qt SCXML state machine. <a href="#details">More...</a></p>
<!-- @@@QScxmlDataModel -->
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign">   <span class="preprocessor">#include &lt;QScxmlDataModel&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += scxml</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Since:</td><td class="memItemRight bottomAlign">  Qt 5.7</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="qscxmlcppdatamodel.html">QScxmlCppDataModel</a>, <a href="qscxmlecmascriptdatamodel.html">QScxmlEcmaScriptDataModel</a>, and <a href="qscxmlnulldatamodel.html">QScxmlNullDataModel</a></p>
</td></tr></table></div><ul>
<li><a href="qscxmldatamodel-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-types"></a>
<h2 id="public-types">Public Types</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel-foreachloopbody.html">ForeachLoopBody</a></b></td></tr>
</table></div>
<a name="properties"></a>
<h2 id="properties">Properties</h2>
<ul>
<li class="fn"><b><a href="qscxmldatamodel.html#stateMachine-prop">stateMachine</a></b> : QScxmlStateMachine*</li>
</ul>
<a name="public-functions"></a>
<h2 id="public-functions">Public Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#QScxmlDataModel">QScxmlDataModel</a></b>(QObject *<i>parent</i> = nullptr)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#evaluateAssignment">evaluateAssignment</a></b>(QScxmlExecutableContent::EvaluatorId <i>id</i>, bool *<i>ok</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#evaluateForeach">evaluateForeach</a></b>(QScxmlExecutableContent::EvaluatorId <i>id</i>, bool *<i>ok</i>, QScxmlDataModel::ForeachLoopBody *<i>body</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#evaluateInitialization">evaluateInitialization</a></b>(QScxmlExecutableContent::EvaluatorId <i>id</i>, bool *<i>ok</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#evaluateToBool">evaluateToBool</a></b>(QScxmlExecutableContent::EvaluatorId <i>id</i>, bool *<i>ok</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual QString </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#evaluateToString">evaluateToString</a></b>(QScxmlExecutableContent::EvaluatorId <i>id</i>, bool *<i>ok</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual QVariant </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#evaluateToVariant">evaluateToVariant</a></b>(QScxmlExecutableContent::EvaluatorId <i>id</i>, bool *<i>ok</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#evaluateToVoid">evaluateToVoid</a></b>(QScxmlExecutableContent::EvaluatorId <i>id</i>, bool *<i>ok</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#hasScxmlProperty">hasScxmlProperty</a></b>(const QString &amp;<i>name</i>) const = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual QVariant </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#scxmlProperty">scxmlProperty</a></b>(const QString &amp;<i>name</i>) const = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#setScxmlEvent">setScxmlEvent</a></b>(const QScxmlEvent &amp;<i>event</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#setScxmlProperty">setScxmlProperty</a></b>(const QString &amp;<i>name</i>, const QVariant &amp;<i>value</i>, const QString &amp;<i>context</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#setStateMachine">setStateMachine</a></b>(QScxmlStateMachine *<i>stateMachine</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#setup">setup</a></b>(const QVariantMap &amp;<i>initialDataValues</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QScxmlStateMachine *</td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#stateMachine">stateMachine</a></b>() const</td></tr>
</table></div>
<a name="signals"></a>
<h2 id="signals">Signals</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#stateMachine-prop">stateMachineChanged</a></b>(QScxmlStateMachine *<i>stateMachine</i>)</td></tr>
</table></div>
<a name="static-public-members"></a>
<h2 id="static-public-members">Static Public Members</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> const QMetaObject </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#staticMetaObject-var">staticMetaObject</a></b></td></tr>
</table></div>
<a name="protected-functions"></a>
<h2 id="protected-functions">Protected Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qscxmldatamodel.html#QScxmlDataModel-1">QScxmlDataModel</a></b>(QScxmlDataModelPrivate &amp;<i>dd</i>, QObject *<i>parent</i> = nullptr)</td></tr>
</table></div>
<a name="details"></a>
<!-- $$$QScxmlDataModel-description -->
<div class="descr">
<h2 id="details">Detailed Description</h2>
<p>The <a href="qscxmldatamodel.html">QScxmlDataModel</a> class is the data model base class for a Qt SCXML state machine.</p>
<p>SCXML data models are described in <a href="https://www.w3.org/TR/scxml/#data-module">SCXML Specification - 5 Data Model and Data Manipulation</a>. For more information about supported data models, see <a href="qtscxml-scxml-compliance.html">SCXML Compliance</a>.</p>
<p>One data model can only belong to one state machine.</p>
</div>
<p><b>See also </b><a href="qscxmlstatemachine.html">QScxmlStateMachine</a>, <a href="qscxmlcppdatamodel.html">QScxmlCppDataModel</a>, <a href="qscxmlecmascriptdatamodel.html">QScxmlEcmaScriptDataModel</a>, and <a href="qscxmlnulldatamodel.html">QScxmlNullDataModel</a>.</p>
<!-- @@@QScxmlDataModel -->
<div class="prop">
<h2>Property Documentation</h2>
<!-- $$$stateMachine-prop$$$stateMachine$$$setStateMachineQScxmlStateMachine*$$$stateMachineChangedQScxmlStateMachine* -->
<h3 class="fn" id="stateMachine-prop"><a name="stateMachine-prop"></a><span class="name">stateMachine</span> : <span class="type"><a href="qscxmlstatemachine.html">QScxmlStateMachine</a></span>*</h3>
<p>This property holds the state machine this data model belongs to.</p>
<p>A data model can only belong to a single state machine and a state machine can only have one data model. This relation needs to be set up before the state machine is started. Setting this property on a data model will automatically set the corresponding <code>dataModel</code> property on the <i>stateMachine</i>.</p>
<p><b>Access functions:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> QScxmlStateMachine *</td><td class="memItemRight bottomAlign"><span class="name"><b><a href="qscxmldatamodel.html#stateMachine">stateMachine</a></b></span>() const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="qscxmldatamodel.html#setStateMachine">setStateMachine</a></b></span>(QScxmlStateMachine *<i>stateMachine</i>)</td></tr>
</table></div>
<p><b>Notifier signal:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>stateMachineChanged</b></span>(QScxmlStateMachine *<i>stateMachine</i>)</td></tr>
</table></div>
<!-- @@@stateMachine -->
</div>
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QScxmlDataModel[overload1]$$$QScxmlDataModelQObject* -->
<h3 class="fn" id="QScxmlDataModel"><a name="QScxmlDataModel"></a>QScxmlDataModel::<span class="name">QScxmlDataModel</span>(<span class="type">QObject</span> *<i>parent</i> = nullptr)</h3>
<p>Creates a new data model, with the parent object <i>parent</i>.</p>
<!-- @@@QScxmlDataModel -->
<!-- $$$QScxmlDataModel$$$QScxmlDataModelQScxmlDataModelPrivate&QObject* -->
<h3 class="fn" id="QScxmlDataModel-1"><a name="QScxmlDataModel-1"></a><code>[protected] </code>QScxmlDataModel::<span class="name">QScxmlDataModel</span>(<span class="type">QScxmlDataModelPrivate</span> &amp;<i>dd</i>, <span class="type">QObject</span> *<i>parent</i> = nullptr)</h3>
<p>Creates a new data model from the private object <i>dd</i>, with the parent object <i>parent</i>.</p>
<!-- @@@QScxmlDataModel -->
<!-- $$$evaluateAssignment[overload1]$$$evaluateAssignmentQScxmlExecutableContent::EvaluatorIdbool* -->
<h3 class="fn" id="evaluateAssignment"><a name="evaluateAssignment"></a><code>[pure virtual] </code><span class="type">void</span> QScxmlDataModel::<span class="name">evaluateAssignment</span>(<span class="type"><a href="qscxmlexecutablecontent.html#EvaluatorId-typedef">QScxmlExecutableContent::EvaluatorId</a></span> <i>id</i>, <span class="type">bool</span> *<i>ok</i>)</h3>
<p>Evaluates the assignment pointed to by <i>id</i> and sets <i>ok</i> to <code>false</code> if there was an error or to <code>true</code> if there was not.</p>
<!-- @@@evaluateAssignment -->
<!-- $$$evaluateForeach[overload1]$$$evaluateForeachQScxmlExecutableContent::EvaluatorIdbool*QScxmlDataModel::ForeachLoopBody* -->
<h3 class="fn" id="evaluateForeach"><a name="evaluateForeach"></a><code>[pure virtual] </code><span class="type">void</span> QScxmlDataModel::<span class="name">evaluateForeach</span>(<span class="type"><a href="qscxmlexecutablecontent.html#EvaluatorId-typedef">QScxmlExecutableContent::EvaluatorId</a></span> <i>id</i>, <span class="type">bool</span> *<i>ok</i>, <span class="type"><a href="qscxmldatamodel-foreachloopbody.html">QScxmlDataModel::ForeachLoopBody</a></span> *<i>body</i>)</h3>
<p>Evaluates the foreach loop pointed to by <i>id</i> and sets <i>ok</i> to <code>false</code> if there was an error or to <code>true</code> if there was not. The <i>body</i> is executed on each iteration.</p>
<!-- @@@evaluateForeach -->
<!-- $$$evaluateInitialization[overload1]$$$evaluateInitializationQScxmlExecutableContent::EvaluatorIdbool* -->
<h3 class="fn" id="evaluateInitialization"><a name="evaluateInitialization"></a><code>[pure virtual] </code><span class="type">void</span> QScxmlDataModel::<span class="name">evaluateInitialization</span>(<span class="type"><a href="qscxmlexecutablecontent.html#EvaluatorId-typedef">QScxmlExecutableContent::EvaluatorId</a></span> <i>id</i>, <span class="type">bool</span> *<i>ok</i>)</h3>
<p>Evaluates the initialization pointed to by <i>id</i> and sets <i>ok</i> to <code>false</code> if there was an error or to <code>true</code> if there was not.</p>
<!-- @@@evaluateInitialization -->
<!-- $$$evaluateToBool[overload1]$$$evaluateToBoolQScxmlExecutableContent::EvaluatorIdbool* -->
<h3 class="fn" id="evaluateToBool"><a name="evaluateToBool"></a><code>[pure virtual] </code><span class="type">bool</span> QScxmlDataModel::<span class="name">evaluateToBool</span>(<span class="type"><a href="qscxmlexecutablecontent.html#EvaluatorId-typedef">QScxmlExecutableContent::EvaluatorId</a></span> <i>id</i>, <span class="type">bool</span> *<i>ok</i>)</h3>
<p>Evaluates the executable content pointed to by <i>id</i> and sets <i>ok</i> to <code>false</code> if there was an error or to <code>true</code> if there was not. Returns the result of the evaluation as a boolean value.</p>
<!-- @@@evaluateToBool -->
<!-- $$$evaluateToString[overload1]$$$evaluateToStringQScxmlExecutableContent::EvaluatorIdbool* -->
<h3 class="fn" id="evaluateToString"><a name="evaluateToString"></a><code>[pure virtual] </code><span class="type">QString</span> QScxmlDataModel::<span class="name">evaluateToString</span>(<span class="type"><a href="qscxmlexecutablecontent.html#EvaluatorId-typedef">QScxmlExecutableContent::EvaluatorId</a></span> <i>id</i>, <span class="type">bool</span> *<i>ok</i>)</h3>
<p>Evaluates the executable content pointed to by <i>id</i> and sets <i>ok</i> to <code>false</code> if there was an error or to <code>true</code> if there was not. Returns the result of the evaluation as a QString.</p>
<!-- @@@evaluateToString -->
<!-- $$$evaluateToVariant[overload1]$$$evaluateToVariantQScxmlExecutableContent::EvaluatorIdbool* -->
<h3 class="fn" id="evaluateToVariant"><a name="evaluateToVariant"></a><code>[pure virtual] </code><span class="type">QVariant</span> QScxmlDataModel::<span class="name">evaluateToVariant</span>(<span class="type"><a href="qscxmlexecutablecontent.html#EvaluatorId-typedef">QScxmlExecutableContent::EvaluatorId</a></span> <i>id</i>, <span class="type">bool</span> *<i>ok</i>)</h3>
<p>Evaluates the executable content pointed to by <i>id</i> and sets <i>ok</i> to <code>false</code> if there was an error or to <code>true</code> if there was not. Returns the result of the evaluation as a QVariant.</p>
<!-- @@@evaluateToVariant -->
<!-- $$$evaluateToVoid[overload1]$$$evaluateToVoidQScxmlExecutableContent::EvaluatorIdbool* -->
<h3 class="fn" id="evaluateToVoid"><a name="evaluateToVoid"></a><code>[pure virtual] </code><span class="type">void</span> QScxmlDataModel::<span class="name">evaluateToVoid</span>(<span class="type"><a href="qscxmlexecutablecontent.html#EvaluatorId-typedef">QScxmlExecutableContent::EvaluatorId</a></span> <i>id</i>, <span class="type">bool</span> *<i>ok</i>)</h3>
<p>Evaluates the executable content pointed to by <i>id</i> and sets <i>ok</i> to <code>false</code> if there was an error or to <code>true</code> if there was not. The execution is expected to return no result.</p>
<!-- @@@evaluateToVoid -->
<!-- $$$hasScxmlProperty[overload1]$$$hasScxmlPropertyconstQString& -->
<h3 class="fn" id="hasScxmlProperty"><a name="hasScxmlProperty"></a><code>[pure virtual] </code><span class="type">bool</span> QScxmlDataModel::<span class="name">hasScxmlProperty</span>(const <span class="type">QString</span> &amp;<i>name</i>) const</h3>
<p>Returns <code>true</code> if a property with the given <i>name</i> exists, <code>false</code> otherwise.</p>
<!-- @@@hasScxmlProperty -->
<!-- $$$scxmlProperty[overload1]$$$scxmlPropertyconstQString& -->
<h3 class="fn" id="scxmlProperty"><a name="scxmlProperty"></a><code>[pure virtual] </code><span class="type">QVariant</span> QScxmlDataModel::<span class="name">scxmlProperty</span>(const <span class="type">QString</span> &amp;<i>name</i>) const</h3>
<p>Returns the value of the property <i>name</i>.</p>
<p><b>See also </b><a href="qscxmldatamodel.html#setScxmlProperty">setScxmlProperty</a>().</p>
<!-- @@@scxmlProperty -->
<!-- $$$setScxmlEvent[overload1]$$$setScxmlEventconstQScxmlEvent& -->
<h3 class="fn" id="setScxmlEvent"><a name="setScxmlEvent"></a><code>[pure virtual] </code><span class="type">void</span> QScxmlDataModel::<span class="name">setScxmlEvent</span>(const <span class="type"><a href="qscxmlevent.html">QScxmlEvent</a></span> &amp;<i>event</i>)</h3>
<p>Sets the <i>event</i> to use in the subsequent executable content execution.</p>
<!-- @@@setScxmlEvent -->
<!-- $$$setScxmlProperty[overload1]$$$setScxmlPropertyconstQString&constQVariant&constQString& -->
<h3 class="fn" id="setScxmlProperty"><a name="setScxmlProperty"></a><code>[pure virtual] </code><span class="type">bool</span> QScxmlDataModel::<span class="name">setScxmlProperty</span>(const <span class="type">QString</span> &amp;<i>name</i>, const <span class="type">QVariant</span> &amp;<i>value</i>, const <span class="type">QString</span> &amp;<i>context</i>)</h3>
<p>Sets a the value <i>value</i> for the property <i>name</i>.</p>
<p>The <i>context</i> is a string that is used in error messages to indicate the location in the SCXML file where the error occurred.</p>
<p>Returns <code>true</code> if successful or <code>false</code> if an error occurred.</p>
<p><b>See also </b><a href="qscxmldatamodel.html#scxmlProperty">scxmlProperty</a>().</p>
<!-- @@@setScxmlProperty -->
<!-- $$$setStateMachine -->
<h3 class="fn" id="setStateMachine"><a name="setStateMachine"></a><span class="type">void</span> QScxmlDataModel::<span class="name">setStateMachine</span>(<span class="type"><a href="qscxmlstatemachine.html">QScxmlStateMachine</a></span> *<i>stateMachine</i>)</h3>
<p>Sets the state machine this model belongs to to <i>stateMachine</i>. There is a 1:1 relation between state machines and models. After setting the state machine once you cannot change it anymore. Any further attempts to set the state machine using this method will be ignored.</p>
<p><b>Note:</b> Setter function for property <a href="qscxmldatamodel.html#stateMachine-prop">stateMachine</a>. </p><p><b>See also </b><a href="qscxmldatamodel.html#stateMachine">stateMachine</a>().</p>
<!-- @@@setStateMachine -->
<!-- $$$setup[overload1]$$$setupconstQVariantMap& -->
<h3 class="fn" id="setup"><a name="setup"></a><code>[pure virtual] </code><span class="type">bool</span> QScxmlDataModel::<span class="name">setup</span>(const <span class="type">QVariantMap</span> &amp;<i>initialDataValues</i>)</h3>
<p>Initializes the data model with the initial values specified by <i>initialDataValues</i>.</p>
<p>Returns <code>false</code> if parse errors occur or if any of the initialization steps fail. Returns <code>true</code> otherwise.</p>
<p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.</p>
<!-- @@@setup -->
<!-- $$$stateMachine -->
<h3 class="fn" id="stateMachine"><a name="stateMachine"></a><span class="type"><a href="qscxmlstatemachine.html">QScxmlStateMachine</a></span> *QScxmlDataModel::<span class="name">stateMachine</span>() const</h3>
<p>Returns the state machine associated with the data model.</p>
<p><b>Note:</b> Getter function for property <a href="qscxmldatamodel.html#stateMachine-prop">stateMachine</a>. </p><p><b>See also </b><a href="qscxmldatamodel.html#setStateMachine">setStateMachine</a>().</p>
<!-- @@@stateMachine -->
</div>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2019 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    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. </p>
</div>
</body>
</html>