今天學習的內容是狀態機入門,首先簡單介紹一下。
作用:提供一種維護複雜應用程式狀態的方法。 關鍵字複雜應用程式說明在簡單的對話方塊應用程式中佔不到便宜。
依賴: 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為初始狀態,當單...