基于QT/E的嵌入式Linux系統的軟鍵盤實現
2 QT/E通信機制
在圖形界面編程時,我們經常要實現界面之間的相互切換或者相互通知,更具體的來說就是需要實現類與類之間的相互通信。比如,在軟鍵盤的設計中,當一個事件產生時,系統就會發出一個信號。信號和槽(Signal&slot)機制是QT的核心特征,在QT庫中有很多已經設置好的信號,比如:clicked()、triggered()等,開發人員也可以根據需要來自定義某些信號。事件的響應對應著QT窗口里的槽函數,和信號類似,系統有很多預定義的槽,比如exit()、quit()等,用戶也可以根據需要來添加自己的槽函數。
當對象改變其狀態時,信號就由該對象發射(emit)出去,這就是對象所要做的全部事情,它不知道另一端是誰在接收這個信號。這就是真正的信息封裝,它確保對象被當作一個真正的軟件組件來使用。槽用于接收信號,但它們是普通的對象成員函數。一個槽并不知道是否有任何信號與自己相連接。而且,對象并不了解具體的通信機制。可以將很多信號與單個槽進行連接,也可以將單個信號與很多槽進行連接,甚至于將一個信號與另外一個信號相連接也是可能的。
因此,整個QT窗口的設計簡單、靈活且擴展性好。信號與槽之間的鏈接一般用connect()函數來實現,具體關聯方式和實現函數如圖2所示:本文引用地址:http://www.cqxgywz.com/article/148906.htm

3 基于QT/E軟鍵盤的實現
文中主要根據項目的實際需要,在軟鍵盤上制定了數字鍵、字母鍵、退出鍵和確定鍵。具體分兩步實現,第一步:在基于linux環境的PC機上制定軟鍵盤,并編寫代碼實現其按鍵功能;第二步:生成能夠在ARM板上運行的代碼,并移植到ARM板上。
3.1 PC機x11環境下制定軟鍵盤的模型
根據項目的實際需求,在PC機x11/QT環境下設計了軟鍵盤界面,該軟鍵盤具有數字鍵、字母鍵、退出鍵和確定鍵,總共42個按鍵,如圖3所示。在linux環境的QT designer下,創建新的widget,然后根據項目中所需要的按鍵個數來確定軟鍵盤的大小,在此,選擇軟鍵盤的外框大小為:540x160。軟鍵盤外框搭建完成之后,需要在軟鍵盤區域內加入實際所需要的按鍵。將Widget Box下Buttons選項中的PushButton按鍵拖入到軟鍵盤區域內,在PushButton按鍵屬性的文本編輯中填入按鍵值,比如“1”。在PushButton按鍵屬性的名字編輯中填入按鍵名,比如“n1”。
同理,在軟鍵盤區域內拖入實際所需要按鍵個數的按鍵,根據所需要的鍵值修改每個按鍵上面的文本屬性和名字屬性。按照一般鍵盤的布局對它們進行排列
DIY機械鍵盤相關社區:機械鍵盤DIY









評論