qsignaltransition.html 22.6 KB
Newer Older
xuebingbing's avatar
xuebingbing committed
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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qsignaltransition.cpp -->
  <title>QSignalTransition Class | Qt Core 5.11</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 ><a href="../qtdoc/index.html">Qt 5.11</a></td><td ><a href="qtcore-index.html">Qt Core</a></td><td ><a href="qtcore-module.html">C++ Classes</a></td><td >QSignalTransition</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qt 5.11.2 Reference Documentation</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="#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="#reimplemented-protected-functions">Reimplemented 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">QSignalTransition Class</h1>
<!-- $$$QSignalTransition-brief -->
<p>The <a href="qsignaltransition.html">QSignalTransition</a> class provides a transition based on a Qt signal. <a href="#details">More...</a></p>
<!-- @@@QSignalTransition -->
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign">   <span class="preprocessor">#include &lt;QSignalTransition&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += core</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Since:</td><td class="memItemRight bottomAlign">  Qt 4.6</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="qabstracttransition.html">QAbstractTransition</a></td></tr></table></div><ul>
<li><a href="qsignaltransition-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="properties"></a>
<h2 id="properties">Properties</h2>
<ul>
<li class="fn"><b><a href="qsignaltransition.html#senderObject-prop">senderObject</a></b> : QObject*</li>
<li class="fn"><b><a href="qsignaltransition.html#signal-prop">signal</a></b> : QByteArray</li>
</ul>
<ul>
<li class="fn">4 properties inherited from <a href="qabstracttransition.html#properties">QAbstractTransition</a></li>
<li class="fn">1 property inherited from <a href="qobject.html#properties">QObject</a></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="qsignaltransition.html#QSignalTransition">QSignalTransition</a></b>(QState *<i>sourceState</i> = nullptr)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#QSignalTransition-1">QSignalTransition</a></b>(const QObject *<i>sender</i>, const char *<i>signal</i>, QState *<i>sourceState</i> = nullptr)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#QSignalTransition-2">QSignalTransition</a></b>(const QObject *<i>sender</i>, PointerToMemberFunction <i>signal</i>, QState *<i>sourceState</i> = nullptr)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#dtor.QSignalTransition">~QSignalTransition</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QObject *</td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#senderObject">senderObject</a></b>() const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#setSenderObject">setSenderObject</a></b>(const QObject *<i>sender</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#setSignal">setSignal</a></b>(const QByteArray &amp;<i>signal</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QByteArray </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#signal">signal</a></b>() const</td></tr>
</table></div>
<ul>
<li class="fn">11 public functions inherited from <a href="qabstracttransition.html#public-functions">QAbstractTransition</a></li>
<li class="fn">32 public functions inherited from <a href="qobject.html#public-functions">QObject</a></li>
</ul>
<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="qsignaltransition.html#senderObjectChanged">senderObjectChanged</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#signalChanged">signalChanged</a></b>()</td></tr>
</table></div>
<ul>
<li class="fn">3 signals inherited from <a href="qabstracttransition.html#signals">QAbstractTransition</a></li>
<li class="fn">2 signals inherited from <a href="qobject.html#signals">QObject</a></li>
</ul>
<a name="reimplemented-protected-functions"></a>
<h2 id="reimplemented-protected-functions">Reimplemented Protected Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#event">event</a></b>(QEvent *<i>e</i>) override</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#eventTest">eventTest</a></b>(QEvent *<i>event</i>) override</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qsignaltransition.html#onTransition">onTransition</a></b>(QEvent *<i>event</i>) override</td></tr>
</table></div>
<ul>
<li class="fn">3 protected functions inherited from <a href="qabstracttransition.html#protected-functions">QAbstractTransition</a></li>
<li class="fn">9 protected functions inherited from <a href="qobject.html#protected-functions">QObject</a></li>
</ul>
<h3>Additional Inherited Members</h3>
<ul>
<li class="fn">1 public slot inherited from <a href="qobject.html#public-slots">QObject</a></li>
<li class="fn">11 static public members inherited from <a href="qobject.html#static-public-members">QObject</a></li>
<li class="fn">3 protected functions inherited from <a href="qabstracttransition.html#protected-functions">QAbstractTransition</a></li>
<li class="fn">9 protected functions inherited from <a href="qobject.html#protected-functions">QObject</a></li>
</ul>
<a name="details"></a>
<!-- $$$QSignalTransition-description -->
<div class="descr">
<h2 id="details">Detailed Description</h2>
<p>The <a href="qsignaltransition.html">QSignalTransition</a> class provides a transition based on a Qt signal.</p>
<p>Typically you would use the overload of <a href="qstate.html#addTransition">QState::addTransition</a>() that takes a sender and signal as arguments, rather than creating <a href="qsignaltransition.html">QSignalTransition</a> objects directly. <a href="qsignaltransition.html">QSignalTransition</a> is part of <a href="statemachine-api.html">The State Machine Framework</a>.</p>
<p>You can subclass <a href="qsignaltransition.html">QSignalTransition</a> and reimplement <a href="qsignaltransition.html#eventTest">eventTest</a>() to make a signal transition conditional; the event object passed to <a href="qsignaltransition.html#eventTest">eventTest</a>() will be a <a href="qstatemachine-signalevent.html">QStateMachine::SignalEvent</a> object. Example:</p>
<pre class="cpp">

  <span class="keyword">class</span> CheckedTransition : <span class="keyword">public</span> <span class="type"><a href="qsignaltransition.html#QSignalTransition">QSignalTransition</a></span>
  {
  <span class="keyword">public</span>:
      CheckedTransition(<span class="type"><a href="../qtwidgets/qcheckbox.html">QCheckBox</a></span> <span class="operator">*</span>check)
          : <span class="type"><a href="qsignaltransition.html#QSignalTransition">QSignalTransition</a></span>(check<span class="operator">,</span> SIGNAL(stateChanged(<span class="type">int</span>))) {}
  <span class="keyword">protected</span>:
      bool eventTest(<span class="type"><a href="qevent.html">QEvent</a></span> <span class="operator">*</span>e) {
          <span class="keyword">if</span> (<span class="operator">!</span><span class="type"><a href="qsignaltransition.html#QSignalTransition">QSignalTransition</a></span><span class="operator">::</span>eventTest(e))
              <span class="keyword">return</span> <span class="keyword">false</span>;
          <span class="type"><a href="qstatemachine.html">QStateMachine</a></span><span class="operator">::</span>SignalEvent <span class="operator">*</span>se <span class="operator">=</span> <span class="keyword">static_cast</span><span class="operator">&lt;</span><span class="type"><a href="qstatemachine.html">QStateMachine</a></span><span class="operator">::</span>SignalEvent<span class="operator">*</span><span class="operator">&gt;</span>(e);
          <span class="keyword">return</span> (se<span class="operator">-</span><span class="operator">&gt;</span>arguments()<span class="operator">.</span>at(<span class="number">0</span>)<span class="operator">.</span>toInt() <span class="operator">=</span><span class="operator">=</span> <span class="type">Qt</span><span class="operator">::</span>Checked);
      }
  };

  <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>

  <span class="type"><a href="../qtwidgets/qcheckbox.html">QCheckBox</a></span> <span class="operator">*</span>check <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="../qtwidgets/qcheckbox.html">QCheckBox</a></span>();
  check<span class="operator">-</span><span class="operator">&gt;</span>setTristate(<span class="keyword">true</span>);

  <span class="type"><a href="qstate.html">QState</a></span> <span class="operator">*</span>s1 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qstate.html">QState</a></span>();
  <span class="type"><a href="qstate.html">QState</a></span> <span class="operator">*</span>s2 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="qstate.html">QState</a></span>();
  CheckedTransition <span class="operator">*</span>t1 <span class="operator">=</span> <span class="keyword">new</span> CheckedTransition(check);
  t1<span class="operator">-</span><span class="operator">&gt;</span>setTargetState(s2);
  s1<span class="operator">-</span><span class="operator">&gt;</span>addTransition(t1);

</pre>
</div>
<!-- @@@QSignalTransition -->
<div class="prop">
<h2>Property Documentation</h2>
<!-- $$$senderObject-prop$$$senderObject$$$setSenderObjectconstQObject*$$$senderObjectChanged -->
<h3 class="fn" id="senderObject-prop"><a name="senderObject-prop"></a><span class="name">senderObject</span> : <span class="type"><a href="qobject.html#QObject">QObject</a></span>*</h3>
<p>This property holds the sender object that this signal transition is associated with</p>
<p><b>Access functions:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> QObject *</td><td class="memItemRight bottomAlign"><span class="name"><b><a href="qsignaltransition.html#senderObject">senderObject</a></b></span>() const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="qsignaltransition.html#setSenderObject">setSenderObject</a></b></span>(const QObject *<i>sender</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><a href="qsignaltransition.html#senderObjectChanged">senderObjectChanged</a></b></span>()</td><td class="memItemRight bottomAlign">[see note below]</td></tr>
</table></div>
<p><b>Note: </b>This is a private signal. It can be used in signal connections but cannot be emitted by the user.</p>
<!-- @@@senderObject -->
<!-- $$$signal-prop$$$signal$$$setSignalconstQByteArray&$$$signalChanged -->
<h3 class="fn" id="signal-prop"><a name="signal-prop"></a><span class="name">signal</span> : <span class="type"><a href="qbytearray.html">QByteArray</a></span></h3>
<p>This property holds the signal that this signal transition is associated with</p>
<p><b>Access functions:</b></p>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="qsignaltransition.html#signal">signal</a></b></span>() const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="qsignaltransition.html#setSignal">setSignal</a></b></span>(const QByteArray &amp;<i>signal</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><a href="qsignaltransition.html#signalChanged">signalChanged</a></b></span>()</td><td class="memItemRight bottomAlign">[see note below]</td></tr>
</table></div>
<p><b>Note: </b>This is a private signal. It can be used in signal connections but cannot be emitted by the user.</p>
<!-- @@@signal -->
</div>
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QSignalTransition[overload1]$$$QSignalTransitionQState* -->
<h3 class="fn" id="QSignalTransition"><a name="QSignalTransition"></a>QSignalTransition::<span class="name">QSignalTransition</span>(<span class="type"><a href="qstate.html">QState</a></span> *<i>sourceState</i> = nullptr)</h3>
<p>Constructs a new signal transition with the given <i>sourceState</i>.</p>
<!-- @@@QSignalTransition -->
<!-- $$$QSignalTransition$$$QSignalTransitionconstQObject*constchar*QState* -->
<h3 class="fn" id="QSignalTransition-1"><a name="QSignalTransition-1"></a>QSignalTransition::<span class="name">QSignalTransition</span>(const <span class="type"><a href="qobject.html#QObject">QObject</a></span> *<i>sender</i>, const <span class="type">char</span> *<i>signal</i>, <span class="type"><a href="qstate.html">QState</a></span> *<i>sourceState</i> = nullptr)</h3>
<p>Constructs a new signal transition associated with the given <i>signal</i> of the given <i>sender</i>, and with the given <i>sourceState</i>.</p>
<!-- @@@QSignalTransition -->
<!-- $$$QSignalTransition$$$QSignalTransitionconstQObject*PointerToMemberFunctionQState* -->
<h3 class="fn" id="QSignalTransition-2"><a name="QSignalTransition-2"></a>QSignalTransition::<span class="name">QSignalTransition</span>(const <span class="type"><a href="qobject.html#QObject">QObject</a></span> *<i>sender</i>, <span class="type">PointerToMemberFunction</span> <i>signal</i>, <span class="type"><a href="qstate.html">QState</a></span> *<i>sourceState</i> = nullptr)</h3>
<p>This is an overloaded function.</p>
<p>Constructs a new signal transition associated with the given <i>signal</i> of the given <i>sender</i> object and with the given <i>sourceState</i>. This constructor is enabled if the compiler supports delegating constructors, as indicated by the presence of the macro Q_COMPILER_DELEGATING_CONSTRUCTORS.</p>
<p>This function was introduced in  Qt 5.7.</p>
<!-- @@@QSignalTransition -->
<!-- $$$~QSignalTransition[overload1]$$$~QSignalTransition -->
<h3 class="fn" id="dtor.QSignalTransition"><a name="dtor.QSignalTransition"></a><code>[virtual] </code>QSignalTransition::<span class="name">~QSignalTransition</span>()</h3>
<p>Destroys this signal transition.</p>
<!-- @@@~QSignalTransition -->
<!-- $$$event[overload1]$$$eventQEvent* -->
<h3 class="fn" id="event"><a name="event"></a><code>[override virtual protected] </code><span class="type">bool</span> QSignalTransition::<span class="name">event</span>(<span class="type"><a href="qevent.html">QEvent</a></span> *<i>e</i>)</h3>
<p>Reimplemented from <a href="qabstracttransition.html#event">QAbstractTransition::event</a>().</p>
<!-- @@@event -->
<!-- $$$eventTest[overload1]$$$eventTestQEvent* -->
<h3 class="fn" id="eventTest"><a name="eventTest"></a><code>[override virtual protected] </code><span class="type">bool</span> QSignalTransition::<span class="name">eventTest</span>(<span class="type"><a href="qevent.html">QEvent</a></span> *<i>event</i>)</h3>
<p>Reimplemented from <a href="qabstracttransition.html#eventTest">QAbstractTransition::eventTest</a>().</p>
<p>The default implementation returns <code>true</code> if the <i>event</i> is a <a href="qstatemachine-signalevent.html">QStateMachine::SignalEvent</a> object and the event's sender and signal index match this transition, and returns <code>false</code> otherwise.</p>
<!-- @@@eventTest -->
<!-- $$$onTransition[overload1]$$$onTransitionQEvent* -->
<h3 class="fn" id="onTransition"><a name="onTransition"></a><code>[override virtual protected] </code><span class="type">void</span> QSignalTransition::<span class="name">onTransition</span>(<span class="type"><a href="qevent.html">QEvent</a></span> *<i>event</i>)</h3>
<p>Reimplemented from <a href="qabstracttransition.html#onTransition">QAbstractTransition::onTransition</a>().</p>
<!-- @@@onTransition -->
<!-- $$$senderObject -->
<h3 class="fn" id="senderObject"><a name="senderObject"></a><span class="type"><a href="qobject.html#QObject">QObject</a></span> *QSignalTransition::<span class="name">senderObject</span>() const</h3>
<p>Returns the sender object associated with this signal transition.</p>
<p><b>Note:</b> Getter function for property <a href="qsignaltransition.html#senderObject-prop">senderObject</a>. </p><p><b>See also </b><a href="qsignaltransition.html#setSenderObject">setSenderObject</a>().</p>
<!-- @@@senderObject -->
<!-- $$$senderObjectChanged -->
<h3 class="fn" id="senderObjectChanged"><a name="senderObjectChanged"></a><code>[signal] </code><span class="type">void</span> QSignalTransition::<span class="name">senderObjectChanged</span>()</h3>
<p>This signal is emitted when the <a href="qsignaltransition.html#senderObject-prop">senderObject</a> property is changed.</p>
<p>This function was introduced in  Qt 5.4.</p>
<p><b>Note: </b>This is a private signal. It can be used in signal connections but cannot be emitted by the user.</p>
<p><b>Note:</b> Notifier signal for property <a href="qsignaltransition.html#senderObject-prop">senderObject</a>. </p><p><b>See also </b><a href="qsignaltransition.html#senderObject-prop">QSignalTransition::senderObject</a>.</p>
<!-- @@@senderObjectChanged -->
<!-- $$$setSenderObject -->
<h3 class="fn" id="setSenderObject"><a name="setSenderObject"></a><span class="type">void</span> QSignalTransition::<span class="name">setSenderObject</span>(const <span class="type"><a href="qobject.html#QObject">QObject</a></span> *<i>sender</i>)</h3>
<p>Sets the <i>sender</i> object associated with this signal transition.</p>
<p><b>Note:</b> Setter function for property <a href="qsignaltransition.html#senderObject-prop">senderObject</a>. </p><p><b>See also </b><a href="qsignaltransition.html#senderObject">senderObject</a>().</p>
<!-- @@@setSenderObject -->
<!-- $$$setSignal -->
<h3 class="fn" id="setSignal"><a name="setSignal"></a><span class="type">void</span> QSignalTransition::<span class="name">setSignal</span>(const <span class="type"><a href="qbytearray.html">QByteArray</a></span> &amp;<i>signal</i>)</h3>
<p>Sets the <i>signal</i> associated with this signal transition.</p>
<p><b>Note:</b> Setter function for property <a href="qsignaltransition.html#signal-prop">signal</a>. </p><p><b>See also </b><a href="qsignaltransition.html#signal">signal</a>().</p>
<!-- @@@setSignal -->
<!-- $$$signal -->
<h3 class="fn" id="signal"><a name="signal"></a><span class="type"><a href="qbytearray.html">QByteArray</a></span> QSignalTransition::<span class="name">signal</span>() const</h3>
<p>Returns the signal associated with this signal transition.</p>
<p><b>Note:</b> Getter function for property <a href="qsignaltransition.html#signal-prop">signal</a>. </p><p><b>See also </b><a href="qsignaltransition.html#setSignal">setSignal</a>().</p>
<!-- @@@signal -->
<!-- $$$signalChanged -->
<h3 class="fn" id="signalChanged"><a name="signalChanged"></a><code>[signal] </code><span class="type">void</span> QSignalTransition::<span class="name">signalChanged</span>()</h3>
<p>This signal is emitted when the signal property is changed.</p>
<p>This function was introduced in  Qt 5.4.</p>
<p><b>Note: </b>This is a private signal. It can be used in signal connections but cannot be emitted by the user.</p>
<p><b>Note:</b> Notifier signal for property <a href="qsignaltransition.html#signal-prop">signal</a>. </p><p><b>See also </b><a href="qsignaltransition.html#signal-prop">QSignalTransition::signal</a>.</p>
<!-- @@@signalChanged -->
</div>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2018 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>