學習筆記(2) Qt狀態機初識

2021-06-29 10:13:38 字數 1042 閱讀 9080

今天學習的內容是狀態機入門,首先簡單介紹一下。

作用:提供一種維護複雜應用程式狀態的方法。  關鍵字複雜應用程式說明在簡單的對話方塊應用程式中佔不到便宜。

依賴: qobject和qt的屬性系統。

組成:狀態機(qstatemachine) 、狀態(qstate) 、切換(transition)。

以我的理解最簡單的狀態機這樣描述: 乙個狀態機(qstatemachine)裡包含了多種狀態(qstate),我們通過切換(transition)來從乙個狀態到另乙個狀態。 例:

qstatemachine* machine = new qstatemachine; //狀態機

qstate* state1 = new qstate(machine); //狀態1

qstate* state2 = new qstate(machine); //狀態2

//狀態1對應的三元狀態組(某個物件的某種屬性的值)

state1->assignproperty(ui->radiobutton,"pos",qpoint(0,0));

state1->assignproperty(ui->radiobutton,"checked",false);

//狀態2對應的三元狀態組

state2->assignproperty(ui->radiobutton,"pos",qpoint(100,100));

state2->assignproperty(ui->radiobutton,"checked",true);

//新增切換(切換的方式不止這一種)

state1->addtransition(ui->pushbutton,signal(clicked()),state2);

state2->addtransition(ui->pushbutton,signal(clicked()),state1);

machine->setinitialstate(state1); //設定初始態(必須設定初始態,不然它拒絕開始)

machine->start();//啟動狀態機

學習筆記 狀態機

狀態機是有限狀態自動機的簡稱,是現實事物執行規則抽象而成的一種數學模型 將電路的全部工作方式,分成幾個場景,這些場景的工作方式明顯不同,然後將這些場景通過數學模型表示出來 輸出只和狀態有關而與輸入無關 狀態表 輸出不僅和狀態有關而且和輸入有關係 狀態表 人有三個狀態健康,感冒,中。觸發的條件有淋雨 ...

QT狀態機框架

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

qt 狀態機小記

狀態機 狀態 訊號 狀態機框架與qt的元物件系統是緊密結合的,例如qt的事件系統用來驅動狀態機,狀態機中狀態間的切換可以由訊號來觸發。關於狀態機可以參考the state machine framework關鍵字。如下的示例中,狀態機被乙個按鈕控制,包含3個狀態s1 s2 s3,s1為初始狀態,當單...