<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # QStateMachine Class Reference ## [[QtCore](index.htm) module] 該QStateMachine類提供了一個分層有限狀態機。[More...](#details) 繼承[QState](qstate.html)。 ### Types * `enum Error { NoError, NoInitialStateError, NoDefaultStateInHistoryStateError, NoCommonAncestorForTransitionError }` * `enum EventPriority { NormalPriority, HighPriority }` * `enum RestorePolicy { DontRestoreProperties, RestoreProperties }` * `class **[SignalEvent](index.htm)**` * `class **[WrappedEvent](index.htm)**` ### Methods * `__init__ (self, QObject?parent?=?None)` * `addDefaultAnimation (self, QAbstractAnimation?animation)` * `addState (self, QAbstractState?state)` * `bool cancelDelayedEvent (self, int?id)` * `clearError (self)` * `list-of-QAbstractState configuration (self)` * `list-of-QAbstractAnimation defaultAnimations (self)` * `Error error (self)` * `QString errorString (self)` * `bool event (self, QEvent?e)` * `bool eventFilter (self, QObject?watched, QEvent?event)` * `RestorePolicy globalRestorePolicy (self)` * `bool isAnimated (self)` * `bool isRunning (self)` * `onEntry (self, QEvent?event)` * `onExit (self, QEvent?event)` * `int postDelayedEvent (self, QEvent?event, int?delay)` * `postEvent (self, QEvent?event, EventPriority?priority?=?QStateMachine.NormalPriority)` * `removeDefaultAnimation (self, QAbstractAnimation?animation)` * `removeState (self, QAbstractState?state)` * `setAnimated (self, bool?enabled)` * `setGlobalRestorePolicy (self, RestorePolicy?restorePolicy)` * `start (self)` * `stop (self)` ### Qt Signals * `void started ()` * `void stopped ()` * * * ## Detailed Description 該QStateMachine類提供了一個分層有限狀態機。 QStateMachine是基于概念和符號 [Statecharts](http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf)。 QStateMachine是一部分[The State Machine Framework](index.htm)。 狀態機管理一組狀態(即從繼承的類[QAbstractState](qabstractstate.html))和轉換(后裔[QAbstractTransition](qabstracttransition.html))之間的狀態,這些狀態和轉換定義一個狀態圖。一旦一個狀態圖已經建成,狀態機可以執行它。 QStateMachine的執行算法是基于[State Chart XML (SCXML)](http://www.w3.org/TR/scxml/)算法。該框架的[overview](index.htm)給出了幾種狀態圖,并建立它們的代碼。 使用[addState](qstatemachine.html#addState)( )函數的頂級狀態添加到狀態機。國與刪除[removeState](qstatemachine.html#removeState)()函數。機器運行時拆卸狀態是氣餒。 之前可以對機器進行啟動,[initial state](qstate.html#initialState-prop)必須設置。初始狀態是狀態啟動時,機器進入。然后,您可以[start](qstatemachine.html#start)( )狀態機。該[started](qstatemachine.html#started)當進入初始狀態( )信號被發射。 本機是事件驅動的,并保持自己的事件循環。活動通過張貼到機器[postEvent](qstatemachine.html#postEvent)( ) 。請注意,這意味著它異步執行,并且它不會沒有運行事件循環的進展。你通常不會有事件發布到本機直接作為Qt的轉換,例如,[QEventTransition](qeventtransition.html)和它的子類,處理這個問題。但對于由事件觸發的自定義轉換,[postEvent](qstatemachine.html#postEvent)()是有用的。 狀態機處理事件,并采取轉換,直至頂層的最終狀態進入,狀態機,然后放出[finished](qstate.html#finished)()信號。您也可以[stop](qstatemachine.html#stop)( )顯式狀態機。該[stopped](qstatemachine.html#stopped)()信號在這種情況下被發射。 下面的代碼片斷顯示了一個狀態機單擊按鈕時,將完成: ``` [QPushButton](qpushbutton.html) button; QStateMachine machine; [QState](qstate.html) *s1 = new [QState](qstate.html)(); s1->assignProperty(&button, "text", "Click me"); [QFinalState](qfinalstate.html) *s2 = new [QFinalState](qfinalstate.html)(); s1->addTransition(&button, SIGNAL(clicked()), s2); machine.addState(s1); machine.addState(s2); machine.setInitialState(s1); machine.start(); ``` 此代碼示例使用[QState](qstate.html),它繼承[QAbstractState](qabstractstate.html)。該[QState](qstate.html)類提供了可用于設置屬性和調用方法上的狀態[QObject](qobject.html)當國家進入或退出秒。它還包含用于添加轉場,例如方便的功能,[QSignalTransition](qsignaltransition.html)S作為在這個例子。請參閱[QState](qstate.html)類描述進一步的細節。 如果遇到錯誤,機器會尋找一個[error state](qstate.html#errorState-prop),并且如果有,它會進入這種狀態。可能發生的錯誤的類型由所述[Error](qstatemachine.html#Error-enum)枚舉。進入錯誤狀態后,錯誤的類型,可以檢索與[error](qstatemachine.html#error)( ) 。當進入錯誤狀態的狀態圖的執行不會停止。如果沒有錯誤狀態適用于在錯誤狀態時,機器將停止執行和錯誤信息會被打印到控制臺。 * * * ## Type Documentation ``` QStateMachine.Error ``` 該枚舉類型定義了可以在運行時發生的狀態機錯誤。當狀態機在運行時遇到不可恢復的錯誤,它會設置返回的錯誤代碼[error](qstatemachine.html#error)( ) ,返回的錯誤信息[errorString](qstatemachine.html#errorString-prop)() ,并輸入基于錯誤的情況下的錯誤狀態。 | Constant | Value | Description | | --- | --- | --- | | `QStateMachine.NoError` | `0` | 沒有發生錯誤。 | | `QStateMachine.NoInitialStateError` | `1` | 本機已進入[QState](qstate.html)兒童不具有初始狀態集。這個錯誤的上下文是一個缺少初始狀態的狀態。 | | `QStateMachine.NoDefaultStateInHistoryStateError` | `2` | 本機已進入[QHistoryState](qhistorystate.html)它不具有默認狀態設置。這個錯誤的上下文是[QHistoryState](qhistorystate.html)一個缺少默認狀態。 | | `QStateMachine.NoCommonAncestorForTransitionError` | `3` | 機器已經選擇了一個過渡,其源和目標是不一樣的狀態的樹的一部分,并且因此是不一樣的狀態機的一部分。一般情況下,這可能意味著國家之一沒有得到父母或添加到任何機器。這個錯誤的上下文是過渡的源狀態。 | **See also** [setErrorState](qstate.html#errorState-prop)( ) 。 ``` QStateMachine.EventPriority ``` 該枚舉類型指定使用發布到狀態機的事件的優先級[postEvent](qstatemachine.html#postEvent)( ) 。 高優先級的活動正常優先級的事件之前處理。 | Constant | Value | Description | | --- | --- | --- | | `QStateMachine.NormalPriority` | `0` | 該事件具有正常的優先級。 | | `QStateMachine.HighPriority` | `1` | 該事件具有高優先級。 | ``` QStateMachine.RestorePolicy ``` 這個枚舉變量指定的恢復策略類型。恢復策略生效時,機器進入其中設置一個或多個屬性的狀態。如果恢復策略設置為RestoreProperties ,狀態機將保存屬性的原始值新值被設置之前。 后來,當機器或者進入不設置為給定的屬性的值的狀態下,該屬性將被自動恢復到其初始值。 只有一個初始值將被保存為任何給定的屬性。如果某個屬性的值已經儲存的狀態機,它不會被復蓋,直到該物業已成功恢復。 | Constant | Value | Description | | --- | --- | --- | | `QStateMachine.DontRestoreProperties` | `0` | 狀態機應該不保存屬性的初始值,并在以后恢復它們。 | | `QStateMachine.RestoreProperties` | `1` | 狀態機應該保存屬性的初始值,并在以后恢復它們。 | **See also** [QStateMachine.globalRestorePolicy](qstatemachine.html#globalRestorePolicy-prop)和[QState.assignProperty](qstate.html#assignProperty)( ) 。 * * * ## Method Documentation ``` QStateMachine.__init__ (self, QObject?parent?=?None) ``` 該_parent_的說法,如果不是沒有,原因_self_通過Qt的,而不是PyQt的擁有。 構造一個新的狀態機具有給定_parent_。 ``` QStateMachine.addDefaultAnimation (self, QAbstractAnimation?animation) ``` 添加一個默認_animation_應考慮的任何過渡。 ``` QStateMachine.addState (self, QAbstractState?state) ``` 該_state_說法有它的所有權轉移給Qt的。 將給定_state_這個狀態機。國家變成了頂級的狀態。 如果國家已經在不同的機器上,它首先會從舊機器中取出,然后加入到本機。 **See also** [removeState](qstatemachine.html#removeState)()和[setInitialState](qstate.html#initialState-prop)( ) 。 ``` bool QStateMachine.cancelDelayedEvent (self, int?id) ``` 取消確定了在給定的延遲事件_id_。 ID應該是通過調用返回的值[postDelayedEvent](qstatemachine.html#postDelayedEvent)( ) 。返回True如果該事件被成功取消,否則返回False 。 **Note:**這個功能是[thread-safe](index.htm#thread-safe)。 **See also** [postDelayedEvent](qstatemachine.html#postDelayedEvent)( ) 。 ``` QStateMachine.clearError (self) ``` 清除狀態機的錯誤字符串和錯誤代碼。 ``` list-of-QAbstractState QStateMachine.configuration (self) ``` 返回極大一致集的狀態(包括并行和最終狀態)的,這個狀態機是目前。如果一個國家`s`在配置中,它總是的情況下的父`s`也是在C 。然而,請注意,機器本身不是配置的顯式成員。 ``` list-of-QAbstractAnimation QStateMachine.defaultAnimations (self) ``` 返回默認的動畫,將被視為對任何過渡的列表。 ``` Error QStateMachine.error (self) ``` [ 返回發生在狀態機的最后一個錯誤的錯誤代碼。 ``` QString QStateMachine.errorString (self) ``` ``` bool QStateMachine.event (self, QEvent?e) ``` ](qstatemachine.html#Error-enum) [從重新實現](qstatemachine.html#Error-enum)[QObject.event](qobject.html#event)( ) 。 ``` bool QStateMachine.eventFilter (self, QObject?watched, QEvent?event) ``` 從重新實現[QObject.eventFilter](qobject.html#eventFilter)( ) 。 ``` RestorePolicy QStateMachine.globalRestorePolicy (self) ``` [ ``` bool QStateMachine.isAnimated (self) ``` ``` bool QStateMachine.isRunning (self) ``` 返回是否該狀態機正在運行。 ](qstatemachine.html#RestorePolicy-enum) [](qstatemachine.html#RestorePolicy-enum)[start](qstatemachine.html#start)( )[stop](qstatemachine.html#stop)( ) ``` QStateMachine.onEntry (self, QEvent?event) ``` 從重新實現[QAbstractState.onEntry](qabstractstate.html#onEntry)( ) 。 這個函數會調用[start](qstatemachine.html#start)( )來啟動狀態機。 ``` QStateMachine.onExit (self, QEvent?event) ``` 從重新實現[QAbstractState.onExit](qabstractstate.html#onExit)( ) 。 這個函數會調用[stop](qstatemachine.html#stop)()停止狀態機,并隨后放出[stopped](qstatemachine.html#stopped)()信號。 ``` int QStateMachine.postDelayedEvent (self, QEvent?event, int?delay) ``` 該_event_說法有它的所有權轉移給Qt的。 帖子給定的_event_用于處理由該狀態機中,用給定的_delay_以毫秒為單位。返回與延遲事件相關聯的標識符,或-1,如果事件無法公布。 此函數立即返回。當延遲已過期,該事件將被添加到狀態機的事件隊列進行處理。狀態機取事件的所有權,并刪除它,一旦它已被處理。 您只能在狀態機運行時發布事件。 **Note:**這個功能是[thread-safe](index.htm#thread-safe)。 **See also** [cancelDelayedEvent](qstatemachine.html#cancelDelayedEvent)()和[postEvent](qstatemachine.html#postEvent)( ) 。 ``` QStateMachine.postEvent (self, QEvent?event, EventPriority?priority?=?QStateMachine.NormalPriority) ``` 該_event_說法有它的所有權轉移給Qt的。 帖子給定的_event_的給定_priority_處理這個狀態機。 此函數立即返回。該事件被添加到狀態機的事件隊列中。事件在張貼的順序處理。狀態機取事件的所有權,并刪除它,一旦它已被處理。 您只能在狀態機運行時發布事件。 **Note:**這個功能是[thread-safe](index.htm#thread-safe)。 **See also** [postDelayedEvent](qstatemachine.html#postDelayedEvent)( ) 。 ``` QStateMachine.removeDefaultAnimation (self, QAbstractAnimation?animation) ``` 移除_animation_從預設的動畫列表中。 ``` QStateMachine.removeState (self, QAbstractState?state) ``` 該_state_爭論 刪除給定的_state_從這個狀態機。狀態的狀態機版本的所有權。 **See also** [addState](qstatemachine.html#addState)( ) 。 ``` QStateMachine.setAnimated (self, bool?enabled) ``` ``` QStateMachine.setGlobalRestorePolicy (self, RestorePolicy?restorePolicy) ``` ``` QStateMachine.start (self) ``` 這種方法也是一個Qt槽與C + +的簽名`void start()`。 啟動這個狀態機。機器將重置它的配置和過渡到初始狀態。當最后的頂級狀態([QFinalState](qfinalstate.html))輸入時,機器會發出的[finished](qstate.html#finished)()信號。 **Note:**狀態機將不無運行事件循環,如主應用程序事件循環運行開始[QCoreApplication.exec](qcoreapplication.html#exec)()或[QApplication.exec](qapplication.html#exec)( ) 。 **See also** [started](qstatemachine.html#started)( )[finished](qstate.html#finished)( )[stop](qstatemachine.html#stop)()和[initialState](qstate.html#initialState-prop)( ) 。 ``` QStateMachine.stop (self) ``` 這種方法也是一個Qt槽與C + +的簽名`void stop()`。 停止該狀態機。狀態機將停止處理事件,然后放出[stopped](qstatemachine.html#stopped)()信號。 **See also** [stopped](qstatemachine.html#stopped)()和[start](qstatemachine.html#start)( ) 。 * * * ## Qt Signal Documentation ``` void started () ``` 這是該信號的默認超載。 當狀態機進入初始狀態(這個信號被發射[QStateMachine.initialState](qstate.html#initialState-prop)) 。 **See also** [QStateMachine.finished](qstate.html#finished)()和[QStateMachine.start](qstatemachine.html#start)( ) 。 ``` void stopped () ``` 這是該信號的默認超載。 這個信號被發射時,狀態機已經停止。 **See also** [QStateMachine.stop](qstatemachine.html#stop)()和[QStateMachine.finished](qstate.html#finished)( ) 。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看