精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Qt 4.6 Animation動畫實現(xiàn)之狀態(tài)機(jī) 實例講解

移動開發(fā)
本文介紹的是Qt 4.6 Animation動畫實現(xiàn)之狀態(tài)機(jī) 實例講解,先來看內(nèi)容。

Qt 4.6 Animation動畫實現(xiàn)之狀態(tài)機(jī) 實例是本文要介紹的內(nèi)容,不多說,先來看內(nèi)容。狀態(tài)機(jī)顧名思義,應(yīng)該有不同的狀態(tài)在切換。上面狀態(tài)機(jī)圖中,我們提供了兩種狀態(tài)state1和state2。而狀態(tài)的區(qū)分是由狀態(tài)的屬性來描述的,與之相關(guān)的文章:剖析 Qt 實現(xiàn)動畫狀態(tài)機(jī)實例 ,應(yīng)該對你很有幫助。

比如 p1,p2…等等。從一個狀態(tài)到另一個狀態(tài)的轉(zhuǎn)化,必須由觸發(fā)條件來完成,上圖state1到state2的狀態(tài)轉(zhuǎn)換由transition1來表示,state2

到state1的狀態(tài)轉(zhuǎn)換由transition2來表示。如果希望在狀態(tài)轉(zhuǎn)換過程中有動畫來展示,那么可以在transition1和 transition2中加入動畫

animation1animation2 。最后,狀態(tài)機(jī)進(jìn)入需要有一個初始狀態(tài),我們可以設(shè)定state1為我們這個狀態(tài)機(jī)的初始態(tài)。

有了狀態(tài)機(jī)的描述圖,我們就可以看看用Qt-4.6的代碼,如何實現(xiàn)以上功能。

  1. #include <QtGui/QApplication>   
  2. #include <QApplication> 
  3. #include <QWidget> 
  4. #include <QPushButton> 
  5. #include <QStateMachine> 
  6. #include <QState> 
  7. #include <QSignalTransition> 
  8. #include <QPropertyAnimation>int main(int argc,char *argv[]){  
  9.     QApplication app(argc,argv);  
  10.     QPushButton *button = new QPushButton("Animated Button");      
  11.     button->show();    // 創(chuàng)建狀態(tài)機(jī)     
  12.      QStateMachine *machine = new QStateMachine;    // 創(chuàng)建兩個狀態(tài),狀態(tài)的屬性由QPushButton的位置大小決定。      
  13.      //QState *state1 = new QState(machine->rootState());      
  14.      QState *state1 = new QState(machine);      
  15.      state1->assignProperty(button, "geometry", QRect(480, 480, 150, 30));      
  16.      //QState *state2 = new QState(machine->rootState());      
  17.      QState *state2 = new QState(machine);      
  18.      state2->assignProperty(button, "geometry", QRect(250, 250, 150, 30));    // 將狀態(tài)1設(shè)置為狀態(tài)機(jī)的初始狀態(tài)      
  19.      machine->setInitialState(state1);    // 增加觸發(fā)狀態(tài)1到狀態(tài)2的觸發(fā)條件,QPushButton按鈕被按下,動畫效果由addAnimation()完成     
  20.       /*      
  21.        細(xì)心的讀者可能發(fā)現(xiàn)QPropertyAnimation的setStartValue()和setEndValue()都沒有被調(diào)用到。  
  22.        其實這里動畫變化的初始態(tài)和結(jié)束態(tài),      
  23.         由state1和state2決定的。另外,如果沒有設(shè)置動畫的持續(xù)時長,則默認(rèn)是250毫秒。      
  24.         */      
  25.         QSignalTransition *transition1 = state1->addTransition(button, SIGNAL(clicked()), state2);  
  26.             transition1->addAnimation(new QPropertyAnimation(button, "geometry"));    // 同理,增加狀態(tài)2到狀態(tài)1的觸發(fā)條件,也是按鈕被按下      
  27.             QSignalTransition *transition2 = state2->addTransition(button, SIGNAL(clicked()), state1);      
  28.             transition2->addAnimation(new QPropertyAnimation(button, "geometry"));    // 將狀態(tài)機(jī)啟動      
  29.             machine->start();      
  30.             return app.exec();  
  31. }  

QT的State Machine Framework是在Qt4.6中引入的,其理論基礎(chǔ)是Harel的Statechart,通過定義一系列的可能狀態(tài),以及系統(tǒng)如何在這些狀態(tài)中進(jìn)行轉(zhuǎn)換(Transitions between states)來描述整個狀態(tài)機(jī)的運(yùn)行。
狀態(tài)機(jī)體系結(jié)構(gòu)

QT的狀態(tài)機(jī)體系主要包括三部分模塊:

以QAbstractState為基類的QState,以及QFinalState,QHistoryState等表示狀態(tài)的類

以QAbstractTransition為基類的用來表示各類狀態(tài)轉(zhuǎn)換行為(Transition)的類(包括:事件觸發(fā)/信號觸發(fā)/鼠標(biāo)鍵盤觸發(fā)的轉(zhuǎn)換等類別)

QStateMachine狀態(tài)機(jī)類

特性基本功能

光有狀態(tài)機(jī)本身,只是定義狀態(tài)轉(zhuǎn)換,什么事情也不做的話,這樣的狀態(tài)機(jī)也就沒有什么用

QState類可以和一個控件屬性綁定,在進(jìn)入這個狀態(tài)時,設(shè)定該屬性值

也可以通過連接QState的entered和exited信號,執(zhí)行指定的槽函數(shù)。

狀態(tài)機(jī)的退出

你可以定義一個永不結(jié)束的狀態(tài)機(jī),也可以通過QFinalState給狀態(tài)機(jī)添加一個“結(jié)束狀態(tài)”,當(dāng)狀態(tài)機(jī)轉(zhuǎn)換到這個狀態(tài)以后,整個狀態(tài)機(jī)就會結(jié)束并退出運(yùn)行。

狀態(tài)嵌套

狀態(tài)本身可以嵌套,一個大的狀態(tài)內(nèi)部可以細(xì)分子狀態(tài),通過狀態(tài)嵌套機(jī)制和并行狀態(tài)機(jī)制,可以實現(xiàn)

狀態(tài)轉(zhuǎn)換的歸組(比如可以用一個Transtion將一組的狀態(tài)都轉(zhuǎn)向另一個狀態(tài),用來實現(xiàn),比如退出鍵),多個狀態(tài)轉(zhuǎn)換參數(shù)的并行監(jiān)控,以避免創(chuàng)建過多的獨(dú)立狀態(tài)(因為如果每個參數(shù)都是獨(dú)立互斥的,那么狀態(tài)的數(shù)目量級為O(N^2))

狀態(tài)的轉(zhuǎn)換,不受嵌套機(jī)制的影響,也就是說你可以定義從任意層級的狀態(tài)轉(zhuǎn)換到其它狀態(tài)。

動畫屬性值

狀態(tài)轉(zhuǎn)換可以配合Animation相關(guān)類,實現(xiàn)對象屬性值的動畫效果。針對一些邊際場合,State相關(guān)類還提供的函數(shù)用于判定屬性值是否已經(jīng)完成賦值(如果在動畫過程中,屬性值是在變化的,不算賦值完畢),以及動畫完成前,狀態(tài)提前退出時的屬性參數(shù)設(shè)置設(shè)定機(jī)制等。

歷史狀態(tài)

QHistoryState類,并不像我所想象的那樣,是用來跟蹤和記錄歷史狀態(tài)的記錄堆棧。到底是什么用途,看看如何使用它就知道了。

QHistoryState必須被添加為一個父狀態(tài)組的成員狀態(tài)。當(dāng)父狀態(tài)組退出(轉(zhuǎn)換到狀態(tài)組外部的其它狀態(tài))時,會自動把當(dāng)前的狀態(tài)記錄到QHistoryState中,外部狀態(tài)轉(zhuǎn)換回來時,不需要知道原先的狀態(tài)是該狀態(tài)組中具體的哪一個,只需要轉(zhuǎn)向狀態(tài)組中的歷史狀態(tài)成因就可以了。

所以,歷史狀態(tài)的使用,應(yīng)該更多的是為了記錄一個被打斷的狀態(tài),比如跳到一個外部狀態(tài)處理一些事情,然后再返回到被打斷的狀態(tài)。

無目標(biāo)狀態(tài)轉(zhuǎn)換

所謂無目標(biāo)狀態(tài)轉(zhuǎn)換(Targetless Transitions),是指當(dāng)一個狀態(tài)轉(zhuǎn)換動作被觸發(fā)時,并不轉(zhuǎn)向另一個狀態(tài),只是觸發(fā)一個QAbstractTramsotopm::triggered信號。你可以鏈接這個信號來做一些處理。

需要注意的是:Targetless Transitions是通過初始化一個Transition類時,不指定目標(biāo)狀態(tài)來實現(xiàn)的,如果明確指定的目標(biāo)狀態(tài)為源狀態(tài)(比如S1->S1),那么該狀態(tài)會先退出,再進(jìn)入,從而依次觸發(fā)QAbstractState::entered和QAbstractState::exited 信號

小結(jié):關(guān)于詳解 Qt 4.6 Animation動畫實現(xiàn)之狀態(tài)機(jī) 實例的內(nèi)容介紹完了,希望本文對你有所幫助。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-24 16:09:24

Qt 動畫 狀態(tài)機(jī)

2024-10-10 17:46:06

2010-02-24 09:32:38

Visual Stud

2023-03-06 07:35:30

狀態(tài)機(jī)工具訂單狀態(tài)

2025-10-29 07:38:45

2020-12-02 13:33:58

函數(shù)指針編程語言

2011-07-18 16:57:36

Core Animation 動畫

2010-06-18 12:38:38

UML狀態(tài)機(jī)視圖

2021-07-08 09:15:20

單片機(jī)編程狀態(tài)機(jī)編程語言

2010-06-18 13:25:44

UML狀態(tài)機(jī)視圖

2013-09-03 09:57:43

JavaScript有限狀態(tài)機(jī)

2010-06-12 11:11:55

UML應(yīng)用

2024-01-08 09:46:47

2020-10-15 10:38:35

C語言狀態(tài)模型

2014-03-06 13:26:49

動畫資源Animation R

2010-07-08 13:03:31

UML狀態(tài)機(jī)圖

2021-05-17 12:10:05

C語言狀態(tài)機(jī)代碼

2020-03-27 10:50:29

DSL 狀態(tài)機(jī)工具

2010-07-12 15:00:56

UML狀態(tài)機(jī)視圖

2022-03-06 19:57:50

狀態(tài)機(jī)easyfsm項目
點贊
收藏

51CTO技術(shù)棧公眾號

中文字幕不卡av| 欧美高清在线一区| 久久91亚洲精品中文字幕| 9久久9毛片又大又硬又粗| 亚洲国产日韩在线观看| 夜夜爽av福利精品导航| 日韩色性视频| 欧美高清一级片在线观看| 国产欧美在线看| 国产探花在线免费观看| 成人在线视频你懂的| 欧美视频一二三| 图片区小说区区亚洲五月| 国产又大又粗又长| 欧美激情视频一区二区三区在线播放| 日韩精品一区二区三区蜜臀| 成人在线观看你懂的| 国产精品一级伦理| 精品一区二区精品| 久久久亚洲影院你懂的| 三级黄色片网站| 福利一区二区三区视频在线观看 | 国产精品每日更新| 亚洲自拍高清视频网站| 91精品国产乱码久久久张津瑜 | 亚洲精品九九| 色哟哟入口国产精品| 手机看片国产精品| 不卡福利视频| 亚洲精品视频在线观看网站| 久久久亚洲综合网站| 国产精品欧美激情在线| 国产日韩欧美在线播放不卡| 色噜噜国产精品视频一区二区| 五月天丁香社区| 视频精品导航| 天天综合天天做天天综合| 一区二区三区四区视频在线观看 | 视频一区视频二区中文| 欧美日韩福利电影| 少妇高潮惨叫久久久久| 精品五月天堂| 日韩一区二区影院| 国产熟人av一二三区| av在线理伦电影| 国产精品第四页| 欧美高清性xxxxhd| 好吊色一区二区| 极品销魂美女一区二区三区| 日韩免费不卡av| 亚洲国产美女视频| 欧美亚洲精品在线| 亚洲女人天堂av| 色诱av手机版| 电影中文字幕一区二区| 欧美中文一区二区三区| 波多野结衣50连登视频| 欧美精品videosex| 亚洲精品成a人| 一区二区三区av| 在线观看免费高清完整| 国产欧美日韩在线观看| 免费av在线一区二区| 深爱激情五月婷婷| 成人精品视频一区二区三区尤物| 91嫩草在线| 亚洲图片中文字幕| 日韩av一区二区在线影视| 热门国产精品亚洲第一区在线| 久久精品一级片| 亚洲综合婷婷| 久久久精品国产网站| 一区二区精品免费| 美女精品一区最新中文字幕一区二区三区| 91精品国产高清一区二区三区| 久久婷婷综合色| 国精品产品一区| 欧美日韩亚洲综合| 日韩欧美理论片| 亚洲一区二区三区久久久| 在线91免费看| 四虎国产精品永久免费观看视频| 天堂va在线高清一区| 日韩欧美在线一区二区三区| 国产黑丝在线视频| 999在线精品| 亚洲精品理论电影| 好吊一区二区三区视频| 亚洲丝袜美腿一区| 在线观看视频亚洲| 老熟妻内射精品一区| 中文无码久久精品| 韩日精品中文字幕| 亚洲熟女综合色一区二区三区| 噜噜噜久久亚洲精品国产品小说| 国模精品系列视频| 欧美日韩乱国产| 久久最新视频| 成人羞羞国产免费| 性做久久久久久久久久| 99国产欧美另类久久久精品| 日本视频一区二区不卡| 日本在线观看www| 亚洲综合久久久| av免费观看网| 久久精品 人人爱| 日韩欧美国产三级| 亚洲婷婷在线观看| 欧美在线免费看视频| 中文字幕日韩欧美| 欧美成人精品激情在线视频| 国产一区二区三区久久| 国产日韩欧美在线视频观看| 精品人妻一区二区三区蜜桃| 久久欧美一区二区| 日韩人妻精品一区二区三区| 午夜伦理福利在线| 欧美日韩不卡视频| 人妻av一区二区| 色综合咪咪久久网| 国产综合在线视频| 91美女精品网站| 99精品一区二区| 一区二区三区偷拍| 91三级在线| 91黄视频在线观看| 日本xxxx免费| 日韩伦理视频| 九九精品视频在线观看| 波多野结衣一区二区三区在线 | 亚洲一区二区视频在线观看| 日韩av在线播放不卡| 四虎在线精品| 亚洲欧美成人在线| 精品无码久久久久久久| 久久电影网站中文字幕| 欧美精品v日韩精品v国产精品| 在线观看小视频| 欧美日韩一级大片网址| 国产三级国产精品| 欧美三级不卡| 国产精品美女主播| 欧美另类自拍| 国内精品免费在线观看| 欧美一区二区三区在线免费观看| 136福利第一导航国产在线| 日韩欧美色电影| 登山的目的在线| 另类的小说在线视频另类成人小视频在线| 欧美大香线蕉线伊人久久国产精品| 超碰中文在线| 精品美女在线播放| 免费一级全黄少妇性色生活片| 国产一区日韩二区欧美三区| 在线日韩av永久免费观看| 成人精品国产亚洲| 色偷偷噜噜噜亚洲男人的天堂| 在线观看国产小视频| 中文字幕欧美激情| 日韩av片网站| 欧美丰满老妇| 91久久在线观看| 高清全集视频免费在线| 日韩亚洲欧美成人一区| 黄色一级片在线| 成人精品在线视频观看| 五十路熟女丰满大屁股| 亚洲成人一品| 国产精品1区2区在线观看| 国产区视频在线| 欧美色涩在线第一页| 亚洲人与黑人屁股眼交| 国产一区二区精品久久| 嫩草影院中文字幕| 久久1电影院| 国产成人欧美在线观看| 蜜桃视频网站在线观看| 日韩一区二区三区视频在线观看| 免费一级肉体全黄毛片| 97久久久精品综合88久久| 久久久噜噜噜www成人网| 精品日韩欧美一区| 成人黄色片在线| 9999在线视频| 亚洲色图激情小说| 国产免费叼嘿网站免费| 亚洲va欧美va天堂v国产综合| xxx在线播放| 精品一区二区三区久久| 福利视频免费在线观看| 一呦二呦三呦国产精品| 国产日韩在线播放| av在线小说| 深夜成人在线观看| 女人18毛片水真多18精品| 色婷婷av一区二区三区gif| 日韩三级久久久| 波多野结衣一区二区三区 | 午夜精品一区二区三级视频| 成人手机在线视频| 中文字幕在线观看第三页| 伊人青青综合网| 日本不卡一区二区三区在线观看| 成人日韩视频| 欧美一区二区影院| 国产三区视频在线观看| 亚洲乱码国产乱码精品精天堂| 在线观看免费视频a| 五月婷婷综合在线| 污软件在线观看| 26uuu国产日韩综合| 日本55丰满熟妇厨房伦| 日韩av电影一区| 霍思燕三级露全乳照| 色小子综合网| 久久久久久久免费| 色播一区二区| 国产精品自拍偷拍| 台湾佬中文娱乐网欧美电影| 欧美国产乱视频| 五月天婷婷在线视频| 国产视频亚洲精品| 超碰在线观看99| 欧美精品1区2区| 精人妻无码一区二区三区| 亚洲电影第三页| 欧洲美女女同性互添| 久久精品欧美一区二区三区麻豆| 潘金莲一级淫片aaaaa| 国产在线免费看| 国精产品一区一区三区mba桃花| 欧美日韩第二页| 在线欧美不卡| 免费观看亚洲视频| 午夜精品视频一区二区三区在线看| 欧美婷婷久久| 欧美黄色影院| 国产精品乱码一区二区三区| 欧洲精品99毛片免费高清观看| 国产玖玖精品视频| 日韩精品免费观看视频| 日本久久亚洲电影| 精精国产xxxx视频在线野外| 久久青草精品视频免费观看| 日韩123区| 欧美日韩成人精品| 男人天堂亚洲天堂 | 欧美一区二区三区| 中文字幕久久亚洲| 大胆av不用播放器在线播放| 亚洲天堂影视av| av网页在线| 视频直播国产精品| 色综合久久久久综合一本到桃花网| 中文字幕日韩精品在线观看| 成年人免费在线视频| 伊人av综合网| 免费看美女视频在线网站| 最好看的2019年中文视频| 亚洲xxxxxx| 欧美成人免费va影院高清| 黄色免费网站在线| 欧美日韩xxxxx| 国产嫩草在线视频| 97在线观看视频国产| 久久影院午夜精品| 国产a级全部精品| 日韩精品免费观看视频| 成人黄色免费网站在线观看| 精品成人18| 国产九区一区在线| 日韩中文av| 日韩精品一区二区三区色偷偷| japanese国产精品| 在线视频不卡一区二区三区| 欧美r级电影| 亚洲综合欧美日韩| 天天射综合网视频| 2022中文字幕| 国产精品日韩欧美一区| 亚洲色欲综合一区二区三区| 日韩和欧美一区二区三区| 久久综合伊人77777麻豆最新章节| 日韩高清在线不卡| 91在线看网站| 伊人免费在线观看| 91 com成人网| 日本精品999| 亚洲免费av电影| 午夜视频在线观看网站| 欧美激情视频播放| 日韩激情电影免费看| 97精品在线观看| 国产亚洲人成a在线v网站| 亚洲综合小说区| 加勒比色综合久久久久久久久| 日韩妆和欧美的一区二区| 久久免费av| 青青青青草视频| 午夜一级久久| 欧美成人福利在线观看| 国产91精品入口| 久久中文字幕人妻| 一区二区三区日韩精品| 免费看日批视频| 日韩女优制服丝袜电影| 你懂的在线观看| 久久精品视频亚洲| 亚洲黄色中文字幕| 国产在线精品播放| 国产精品乱战久久久| 一区二区三区的久久的视频| 亚洲精品日韩久久| 特级西西444www| 国产午夜久久久久| 成人免费看片98| 91久久线看在观草草青青| 人人妻人人澡人人爽久久av| 中文字幕在线观看亚洲| 深夜福利视频一区二区| 91亚洲午夜在线| 国产精品入口久久| 久久视频这里有精品| 国产乱人伦精品一区二区在线观看| 亚洲永久无码7777kkk| 亚洲国产综合在线| 91精品中文字幕| 日韩精品一区二区在线观看| 亚洲1卡2卡3卡4卡乱码精品| 欧美亚洲成人xxx| 国产精品白浆| 日本老太婆做爰视频| 免费成人在线影院| 精品国产av无码| 午夜视频在线观看一区二区三区| 怡红院男人天堂| 中文字幕日韩精品在线| 欧美电影免费观看| 欧美福利精品| 一区二区黄色| 激情av中文字幕| 亚洲午夜影视影院在线观看| 一级α片免费看刺激高潮视频| 国产午夜精品麻豆| caoporn视频在线| 风间由美久久久| 国产综合欧美| 三大队在线观看| 国产精品夫妻自拍| 国产又大又粗又硬| 久久精品国产久精国产一老狼| 国产精品伦一区二区| 欧美一区二区三区在线播放 | 久久精品视频日本| 精品国产三级电影在线观看| 在线中文字幕电影| 成人一区二区三区四区| 综合久久亚洲| 成人免费播放视频| 亚洲综合一区二区三区| www.国产精品视频| 色婷婷久久一区二区| 精品麻豆剧传媒av国产九九九| 在线观看日韩羞羞视频| 国内精品免费在线观看| 欧美色图亚洲视频| 日韩欧美一级二级三级久久久| 国产丝袜精品丝袜| 国外成人免费视频| 久久这里只有| 色婷婷国产精品免| 欧美日韩一区二区三区高清| 成人欧美在线| 波多野结衣久草一区| 国产情侣一区| 中文字幕第4页| 欧美亚洲国产bt| 里番在线观看网站| 亚洲bt天天射| 99精品国产福利在线观看免费| 亚洲一区二区三区综合| 色综合av在线| 国产精品刘玥久久一区| 亚洲成国产人片在线观看| 亚洲av熟女国产一区二区性色 | 日批视频免费在线观看| 中文字幕在线亚洲| 国产精品日韩精品在线播放| 日本一道本久久| 日本一区二区成人在线| 97视频免费在线| 97在线观看免费高清| 欧美日韩国产传媒| 久草免费资源站| 日本久久精品电影| www.黄在线观看| 成人欧美视频在线| 日韩精品成人一区二区在线| 国产一级片视频| 一区二区亚洲精品国产|