qt 狀態機小記

2021-10-21 19:46:56 字數 606 閱讀 2088

狀態機、狀態、訊號

狀態機框架與qt的元物件系統是緊密結合的,例如qt的事件系統用來驅動狀態機,狀態機中狀態間的切換可以由訊號來觸發。關於狀態機可以參考the state machine framework關鍵字。如下的示例中,狀態機被乙個按鈕控制,包含3個狀態s1、s2、s3,s1為初始狀態,當單擊按鈕時狀態機切換到另乙個狀態並設定了新的geometry屬性值,可以看到單擊按鈕的話按鈕會在三個位置輪流切換:

#include

#include

#include

#include

#include

#include

intmain

(int argc,

char

* ar**)

主要闡述3點:

1 狀態機框架與qt的元物件系統是緊密結合的,qstate 代表得是某一時刻得狀態,代表某一屬性得某個時刻得狀態。

2 在狀態轉換得過程中,進入狀態後會觸發 entered()訊號,退出狀態時,會收到exited()訊號。

3 如果切換到qfinalstate 狀態時,代表退出狀態機。此時會觸發finished()訊號。此時狀態機停止。

狀態機小記

工作上有個功能模組用到了類似狀態機的東東,於是上網科普了一番。狀態機是由一系列輸入驅動,然後系統由其中一種狀態轉換為另一種狀態並產生某種輸出,這樣子的乙個系統叫做狀態機。狀態機分為兩種,一種是輸出只和系統狀態有關,叫做摩爾狀態機,另一種是輸出和輸入以及系統狀態都相關,叫做公尺莉狀態機。有關輸入 狀態...

QT狀態機框架

qt的state machine framework是在qt4.6中引入的,其理論基礎是harel的statechart,通過定義一系列的可能狀態,以及系統如何在這些狀態中進行轉換 transitions between states 來描述整個狀態機的執行。qt的狀態機體系主要包括三部分模組 光有...

qt狀態機的實現

建立狀態,設定狀態中的屬性,設定初始狀態,設定狀態裝換條件 動畫,啟動狀態機 int nmargin 9 int ninitwidth m pselmoldform width int ninitheight m pselmoldform height int nconfepyformw m pco...