翻譯|使用教程|編輯:鮑佳佳|2020-08-19 10:56:26.027|閱讀 349 次
概述:幾乎所有的UI工具包都具有一種機制來檢測用戶操作并對此操作做出響應。其中一些使用callbacks,其他一些使用 use listeners,但是從根本上講,所有這些都受到觀察者模式的啟發。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Qt(發音為“ cute”,而不是“ cu-tee”)是一個跨平臺框架,通常用作圖形工具包,它不僅創建CLI應用程序中也非常有用。而且它也可以在三種主要的臺式機操作系統以及移動操作系統(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設備,Android(Necessitas)和iOS的端口上運行。更多Qt產品詳情點擊這里>>
觀察者模式
幾乎所有的UI工具包都具有一種機制來檢測用戶操作并對此操作做出響應。其中一些使用callbacks,其他一些使用 use listeners,但是從根本上講,所有這些都受到觀察者模式的啟發。
當可觀察對象想要將狀態更改通知其他觀察者對象時,將使用觀察者模式。以下是一些具體示例:
信號和插槽
觀察者模式在GUI應用程序中無處不在。Qt的創建是為了刪除此樣板代碼并提供一種簡潔的語法,而信號和時隙機制就是答案。
Qt沒有提供可供觀察的對象和觀察者,而是提供了兩個高級概念:signal和slot。
以下是我們著名的QPushButton類的一些信號和插槽示例。
當用戶單擊(按下然后釋放),按下或釋放按鈕時,將發送這些信號。
這是來自不同類別的一些廣告位
為了響應信號,必須將插槽連接到信號。Qt提供了QObject :: connect方法。這種方式與兩個宏SIGNAL和SLOT一起使用
FooObjectA *fooA = new FooObjectA(); FooObjectB *fooB = new FooObjectB(); QObject::connect(fooA, SIGNAL (bared()), fooB, SLOT (baz()));
假設FooObjectA具有裸露信號,而FooObjectB具有baz插槽。您必須在兩個宏SIGNAL和SLOT中寫入信號的認證和插槽。
備注 :基本上,信號和插槽是方法,可無論有沒有參數,都從不返回任何東西。盡管信號作為一種方法的概念是不尋常的,但是時隙實際上是一種真實的方法,在其他方法中或在響應信號時可以像往常一樣調用它。
在接下的文章中我們將講述如何通過信號和時隙傳輸信息。更多Qt開發工具點擊這里>>
QtitanRibbon、QtitanChart、QtitanNavigation、QtitanDocking、QtitanDataGrid在線訂購現直降1000元,歡迎咨詢慧都獲取更多優惠>>本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: