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 262 263
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qstate.cpp -->
<title>Qt 4.8: QState Class Reference</title>
<link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
<div class="content">
<a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
</div>
<div class="breadcrumb toolblock">
<ul>
<li class="first"><a href="index.html">Home</a></li>
<!-- Breadcrumbs go here -->
<li><a href="modules.html">Modules</a></li>
<li><a href="qtcore.html">QtCore</a></li>
<li>QState</li>
</ul>
</div>
</div>
<div class="content mainContent">
<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="#protected-functions">Protected Functions</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
<li class="level2"><a href="#states-with-child-states">States with Child States</a></li>
</ul>
</div>
<h1 class="title">QState Class Reference</h1>
<!-- $$$QState-brief -->
<p>The QState class provides a general-purpose state for <a href="qstatemachine.html">QStateMachine</a>. <a href="#details">More...</a></p>
<!-- @@@QState -->
<pre class="cpp"> <span class="preprocessor">#include <QState></span></pre><p><b>Inherits: </b><a href="qabstractstate.html">QAbstractState</a>.</p>
<p><b>Inherited by: </b><a href="qstatemachine.html">QStateMachine</a>.</p>
<p>This class was introduced in Qt 4.6.</p>
<ul>
<li><a href="qstate-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-types"></a>
<h2>Public Types</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> enum </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#ChildMode-enum">ChildMode</a></b> { ExclusiveStates, ParallelStates }</td></tr>
</table>
<a name="properties"></a>
<h2>Properties</h2>
<ul>
<li class="fn"><b><a href="qstate.html#childMode-prop">childMode</a></b> : ChildMode</li>
<li class="fn"><b><a href="qstate.html#errorState-prop">errorState</a></b> : QAbstractState *</li>
<li class="fn"><b><a href="qstate.html#initialState-prop">initialState</a></b> : QAbstractState *</li>
</ul>
<ul>
<li class="fn">1 property inherited from <a href="qobject.html#properties">QObject</a></li>
</ul>
<a name="public-functions"></a>
<h2>Public Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#QState">QState</a></b> ( QState * <i>parent</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#QState-2">QState</a></b> ( ChildMode <i>childMode</i>, QState * <i>parent</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#dtor.QState">~QState</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#addTransition">addTransition</a></b> ( QAbstractTransition * <i>transition</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QSignalTransition * </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#addTransition-2">addTransition</a></b> ( QObject * <i>sender</i>, const char * <i>signal</i>, QAbstractState * <i>target</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QAbstractTransition * </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#addTransition-3">addTransition</a></b> ( QAbstractState * <i>target</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#assignProperty">assignProperty</a></b> ( QObject * <i>object</i>, const char * <i>name</i>, const QVariant & <i>value</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> ChildMode </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#childMode-prop">childMode</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QAbstractState * </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#errorState-prop">errorState</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QAbstractState * </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#initialState-prop">initialState</a></b> () const</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#removeTransition">removeTransition</a></b> ( QAbstractTransition * <i>transition</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#childMode-prop">setChildMode</a></b> ( ChildMode <i>mode</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#errorState-prop">setErrorState</a></b> ( QAbstractState * <i>state</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#initialState-prop">setInitialState</a></b> ( QAbstractState * <i>state</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QList<QAbstractTransition *> </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#transitions">transitions</a></b> () const</td></tr>
</table>
<ul>
<li class="fn">2 public functions inherited from <a href="qabstractstate.html#public-functions">QAbstractState</a></li>
<li class="fn">29 public functions inherited from <a href="qobject.html#public-functions">QObject</a></li>
</ul>
<a name="signals"></a>
<h2>Signals</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#finished">finished</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#propertiesAssigned">propertiesAssigned</a></b> ()</td></tr>
</table>
<ul>
<li class="fn">2 signals inherited from <a href="qabstractstate.html#signals">QAbstractState</a></li>
<li class="fn">1 signal inherited from <a href="qobject.html#signals">QObject</a></li>
</ul>
<a name="reimplemented-protected-functions"></a>
<h2>Reimplemented Protected Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#event">event</a></b> ( QEvent * <i>e</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#onEntry">onEntry</a></b> ( QEvent * <i>event</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qstate.html#onExit">onExit</a></b> ( QEvent * <i>event</i> )</td></tr>
</table>
<ul>
<li class="fn">3 protected functions inherited from <a href="qabstractstate.html#protected-functions">QAbstractState</a></li>
<li class="fn">8 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">7 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="qabstractstate.html#protected-functions">QAbstractState</a></li>
<li class="fn">8 protected functions inherited from <a href="qobject.html#protected-functions">QObject</a></li>
</ul>
<a name="details"></a>
<!-- $$$QState-description -->
<div class="descr">
<h2>Detailed Description</h2>
<p>The QState class provides a general-purpose state for <a href="qstatemachine.html">QStateMachine</a>.</p>
<p>QState objects can have child states, and can have transitions to other states. QState is part of <a href="statemachine-api.html">The State Machine Framework</a>.</p>
<p>The <a href="qstate.html#addTransition">addTransition</a>() function adds a transition. The <a href="qstate.html#removeTransition">removeTransition</a>() function removes a transition. The <a href="qstate.html#transitions">transitions</a>() function returns the state's outgoing transitions.</p>
<p>The <a href="qstate.html#assignProperty">assignProperty</a>() function is used for defining property assignments that should be performed when a state is entered.</p>
<p>Top-level states must be passed a <a href="qstatemachine.html">QStateMachine</a> object as their parent state, or added to a state machine using <a href="qstatemachine.html#addState">QStateMachine::addState</a>().</p>
<a name="states-with-child-states"></a>
<h3>States with Child States</h3>
<p>The <a href="qstate.html#childMode-prop">childMode</a> property determines how child states are treated. For non-parallel state groups, the <a href="qstate.html#initialState-prop">setInitialState</a>() function must be called to set the initial state. The child states are mutually exclusive states, and the state machine needs to know which child state to enter when the parent state is the target of a transition.</p>
<p>The state emits the <a href="qstate.html#finished">QState::finished</a>() signal when a final child state (<a href="qfinalstate.html">QFinalState</a>) is entered.</p>
<p>The <a href="qstate.html#errorState-prop">setErrorState</a>() sets the state's error state. The error state is the state that the state machine will transition to if an error is detected when attempting to enter the state (e.g. because no initial state has been set).</p>
</div>
<!-- @@@QState -->
<div class="types">
<h2>Member Type Documentation</h2>
<!-- $$$ChildMode$$$ExclusiveStates$$$ParallelStates -->
<h3 class="fn"><a name="ChildMode-enum"></a>enum QState::<span class="name">ChildMode</span></h3>
<p>This enum specifies how a state's child states are treated.</p>
<table class="valuelist"><tr valign="top" class="odd"><th class="tblConst">Constant</th><th class="tblval">Value</th><th class="tbldscr">Description</th></tr>
<tr><td class="topAlign"><tt>QState::ExclusiveStates</tt></td><td class="topAlign"><tt>0</tt></td><td class="topAlign">The child states are mutually exclusive and an initial state must be set by calling <a href="qstate.html#initialState-prop">QState::setInitialState</a>().</td></tr>
<tr><td class="topAlign"><tt>QState::ParallelStates</tt></td><td class="topAlign"><tt>1</tt></td><td class="topAlign">The child states are parallel. When the parent state is entered, all its child states are entered in parallel.</td></tr>
</table>
<!-- @@@ChildMode -->
</div>
<div class="prop">
<h2>Property Documentation</h2>
<!-- $$$childMode-prop$$$childMode$$$setChildModeChildMode -->
<h3 class="fn"><a name="childMode-prop"></a><span class="name">childMode</span> : <span class="type"><a href="qstate.html#ChildMode-enum">ChildMode</a></span></h3>
<p>This property holds the child mode of this state.</p>
<p>The default value of this property is <a href="qstate.html#ChildMode-enum">QState::ExclusiveStates</a>.</p>
<p><b>Access functions:</b></p>
<table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> ChildMode </td><td class="memItemRight bottomAlign"><span class="name"><b>childMode</b></span> () const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setChildMode</b></span> ( ChildMode <i>mode</i> )</td></tr>
</table>
<!-- @@@childMode -->
<!-- $$$errorState-prop$$$errorState$$$setErrorStateQAbstractState* -->
<h3 class="fn"><a name="errorState-prop"></a><span class="name">errorState</span> : <span class="type"><a href="qabstractstate.html">QAbstractState</a></span> *</h3>
<p>This property holds the error state of this state.</p>
<p><b>Access functions:</b></p>
<table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> QAbstractState * </td><td class="memItemRight bottomAlign"><span class="name"><b>errorState</b></span> () const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setErrorState</b></span> ( QAbstractState * <i>state</i> )</td></tr>
</table>
<!-- @@@errorState -->
<!-- $$$initialState-prop$$$initialState$$$setInitialStateQAbstractState* -->
<h3 class="fn"><a name="initialState-prop"></a><span class="name">initialState</span> : <span class="type"><a href="qabstractstate.html">QAbstractState</a></span> *</h3>
<p>This property holds the initial state of this state (one of its child states).</p>
<p><b>Access functions:</b></p>
<table class="alignedsummary">
<tr><td class="memItemLeft topAlign rightAlign"> QAbstractState * </td><td class="memItemRight bottomAlign"><span class="name"><b>initialState</b></span> () const</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setInitialState</b></span> ( QAbstractState * <i>state</i> )</td></tr>
</table>
<!-- @@@initialState -->
</div>
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QState[overload1]$$$QStateQState* -->
<h3 class="fn"><a name="QState"></a>QState::<span class="name">QState</span> ( <span class="type">QState</span> * <i>parent</i> = 0 )</h3>
<p>Constructs a new state with the given <i>parent</i> state.</p>
<!-- @@@QState -->
<!-- $$$QState$$$QStateChildModeQState* -->
<h3 class="fn"><a name="QState-2"></a>QState::<span class="name">QState</span> ( <span class="type"><a href="qstate.html#ChildMode-enum">ChildMode</a></span> <i>childMode</i>, <span class="type">QState</span> * <i>parent</i> = 0 )</h3>
<p>Constructs a new state with the given <i>childMode</i> and the given <i>parent</i> state.</p>
<!-- @@@QState -->
<!-- $$$~QState[overload1]$$$~QState -->
<h3 class="fn"><a name="dtor.QState"></a>QState::<span class="name">~QState</span> ()</h3>
<p>Destroys this state.</p>
<!-- @@@~QState -->
<!-- $$$addTransition[overload1]$$$addTransitionQAbstractTransition* -->
<h3 class="fn"><a name="addTransition"></a><span class="type">void</span> QState::<span class="name">addTransition</span> ( <span class="type"><a href="qabstracttransition.html">QAbstractTransition</a></span> * <i>transition</i> )</h3>
<p>Adds the given <i>transition</i>. The transition has this state as the source. This state takes ownership of the transition.</p>
<!-- @@@addTransition -->
<!-- $$$addTransition$$$addTransitionQObject*constchar*QAbstractState* -->
<h3 class="fn"><a name="addTransition-2"></a><span class="type"><a href="qsignaltransition.html">QSignalTransition</a></span> * QState::<span class="name">addTransition</span> ( <span class="type"><a href="qobject.html">QObject</a></span> * <i>sender</i>, const <span class="type">char</span> * <i>signal</i>, <span class="type"><a href="qabstractstate.html">QAbstractState</a></span> * <i>target</i> )</h3>
<p>Adds a transition associated with the given <i>signal</i> of the given <i>sender</i> object, and returns the new <a href="qsignaltransition.html">QSignalTransition</a> object. The transition has this state as the source, and the given <i>target</i> as the target state.</p>
<!-- @@@addTransition -->
<!-- $$$addTransition$$$addTransitionQAbstractState* -->
<h3 class="fn"><a name="addTransition-3"></a><span class="type"><a href="qabstracttransition.html">QAbstractTransition</a></span> * QState::<span class="name">addTransition</span> ( <span class="type"><a href="qabstractstate.html">QAbstractState</a></span> * <i>target</i> )</h3>
<p>Adds an unconditional transition from this state to the given <i>target</i> state, and returns then new transition object.</p>
<!-- @@@addTransition -->
<!-- $$$assignProperty[overload1]$$$assignPropertyQObject*constchar*constQVariant& -->
<h3 class="fn"><a name="assignProperty"></a><span class="type">void</span> QState::<span class="name">assignProperty</span> ( <span class="type"><a href="qobject.html">QObject</a></span> * <i>object</i>, const <span class="type">char</span> * <i>name</i>, const <span class="type"><a href="qvariant.html">QVariant</a></span> & <i>value</i> )</h3>
<p>Instructs this state to set the property with the given <i>name</i> of the given <i>object</i> to the given <i>value</i> when the state is entered.</p>
<p><b>See also </b><a href="qstate.html#propertiesAssigned">propertiesAssigned</a>().</p>
<!-- @@@assignProperty -->
<!-- $$$event[overload1]$$$eventQEvent* -->
<h3 class="fn"><a name="event"></a><span class="type">bool</span> QState::<span class="name">event</span> ( <span class="type"><a href="qevent.html">QEvent</a></span> * <i>e</i> )<tt> [virtual protected]</tt></h3>
<p>Reimplemented from <a href="qobject.html#event">QObject::event</a>().</p>
<!-- @@@event -->
<!-- $$$finished[overload1]$$$finished -->
<h3 class="fn"><a name="finished"></a><span class="type">void</span> QState::<span class="name">finished</span> ()<tt> [signal]</tt></h3>
<p>This signal is emitted when a final child state of this state is entered.</p>
<p><b>See also </b><a href="qfinalstate.html">QFinalState</a>.</p>
<!-- @@@finished -->
<!-- $$$onEntry[overload1]$$$onEntryQEvent* -->
<h3 class="fn"><a name="onEntry"></a><span class="type">void</span> QState::<span class="name">onEntry</span> ( <span class="type"><a href="qevent.html">QEvent</a></span> * <i>event</i> )<tt> [virtual protected]</tt></h3>
<p>Reimplemented from <a href="qabstractstate.html#onEntry">QAbstractState::onEntry</a>().</p>
<!-- @@@onEntry -->
<!-- $$$onExit[overload1]$$$onExitQEvent* -->
<h3 class="fn"><a name="onExit"></a><span class="type">void</span> QState::<span class="name">onExit</span> ( <span class="type"><a href="qevent.html">QEvent</a></span> * <i>event</i> )<tt> [virtual protected]</tt></h3>
<p>Reimplemented from <a href="qabstractstate.html#onExit">QAbstractState::onExit</a>().</p>
<!-- @@@onExit -->
<!-- $$$propertiesAssigned[overload1]$$$propertiesAssigned -->
<h3 class="fn"><a name="propertiesAssigned"></a><span class="type">void</span> QState::<span class="name">propertiesAssigned</span> ()<tt> [signal]</tt></h3>
<p>This signal is emitted when all properties have been assigned their final value. If the state assigns a value to one or more properties for which an animation exists (either set on the transition or as a default animation on the state machine), then the signal will not be emitted until all such animations have finished playing.</p>
<p>If there are no relevant animations, or no property assignments defined for the state, then the signal will be emitted immediately before the state is entered.</p>
<p><b>See also </b><a href="qstate.html#assignProperty">QState::assignProperty</a>() and <a href="qabstracttransition.html#addAnimation">QAbstractTransition::addAnimation</a>().</p>
<!-- @@@propertiesAssigned -->
<!-- $$$removeTransition[overload1]$$$removeTransitionQAbstractTransition* -->
<h3 class="fn"><a name="removeTransition"></a><span class="type">void</span> QState::<span class="name">removeTransition</span> ( <span class="type"><a href="qabstracttransition.html">QAbstractTransition</a></span> * <i>transition</i> )</h3>
<p>Removes the given <i>transition</i> from this state. The state releases ownership of the transition.</p>
<p><b>See also </b><a href="qstate.html#addTransition">addTransition</a>().</p>
<!-- @@@removeTransition -->
<!-- $$$transitions[overload1]$$$transitions -->
<h3 class="fn"><a name="transitions"></a><span class="type"><a href="qlist.html">QList</a></span><<span class="type"><a href="qabstracttransition.html">QAbstractTransition</a></span> *> QState::<span class="name">transitions</span> () const</h3>
<p>Returns this state's outgoing transitions (i.e. transitions where this state is the <a href="qabstracttransition.html#sourceState-prop">source state</a>), or an empty list if this state has no outgoing transitions.</p>
<p>This function was introduced in Qt 4.7.</p>
<p><b>See also </b><a href="qstate.html#addTransition">addTransition</a>().</p>
<!-- @@@transitions -->
</div>
<div class="ft">
<span></span>
</div>
</div>
<div class="footer">
<p>
<acronym title="Copyright">©</acronym> 2012 Nokia Corporation and/or its
subsidiaries. Documentation contributions included herein are the copyrights of
their respective owners.</p>
<br />
<p>
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.</p>
<p>
Documentation sources may be obtained from <a href="http://www.qt-project.org">
www.qt-project.org</a>.</p>
<br />
<p>
Nokia, Qt and their respective logos are trademarks of Nokia Corporation
in Finland and/or other countries worldwide. All other trademarks are property
of their respective owners. <a title="Privacy Policy"
href="http://en.gitorious.org/privacy_policy/">Privacy Policy</a></p>
</div>
</body>
</html>
|