基于QT/E的嵌入式Linux系統(tǒng)的軟鍵盤實現(xiàn)
2 QT/E通信機制
在圖形界面編程時,我們經(jīng)常要實現(xiàn)界面之間的相互切換或者相互通知,更具體的來說就是需要實現(xiàn)類與類之間的相互通信。比如,在軟鍵盤的設(shè)計中,當一個事件產(chǎn)生時,系統(tǒng)就會發(fā)出一個信號。信號和槽(Signal&slot)機制是QT的核心特征,在QT庫中有很多已經(jīng)設(shè)置好的信號,比如:clicked()、triggered()等,開發(fā)人員也可以根據(jù)需要來自定義某些信號。事件的響應(yīng)對應(yīng)著QT窗口里的槽函數(shù),和信號類似,系統(tǒng)有很多預(yù)定義的槽,比如exit()、quit()等,用戶也可以根據(jù)需要來添加自己的槽函數(shù)。
當對象改變其狀態(tài)時,信號就由該對象發(fā)射(emit)出去,這就是對象所要做的全部事情,它不知道另一端是誰在接收這個信號。這就是真正的信息封裝,它確保對象被當作一個真正的軟件組件來使用。槽用于接收信號,但它們是普通的對象成員函數(shù)。一個槽并不知道是否有任何信號與自己相連接。而且,對象并不了解具體的通信機制??梢詫⒑芏嘈盘柵c單個槽進行連接,也可以將單個信號與很多槽進行連接,甚至于將一個信號與另外一個信號相連接也是可能的。
因此,整個QT窗口的設(shè)計簡單、靈活且擴展性好。信號與槽之間的鏈接一般用connect()函數(shù)來實現(xiàn),具體關(guān)聯(lián)方式和實現(xiàn)函數(shù)如圖2所示:本文引用地址:http://butianyuan.cn/article/148906.htm
3 基于QT/E軟鍵盤的實現(xiàn)
文中主要根據(jù)項目的實際需要,在軟鍵盤上制定了數(shù)字鍵、字母鍵、退出鍵和確定鍵。具體分兩步實現(xiàn),第一步:在基于linux環(huán)境的PC機上制定軟鍵盤,并編寫代碼實現(xiàn)其按鍵功能;第二步:生成能夠在ARM板上運行的代碼,并移植到ARM板上。
3.1 PC機x11環(huán)境下制定軟鍵盤的模型
根據(jù)項目的實際需求,在PC機x11/QT環(huán)境下設(shè)計了軟鍵盤界面,該軟鍵盤具有數(shù)字鍵、字母鍵、退出鍵和確定鍵,總共42個按鍵,如圖3所示。在linux環(huán)境的QT designer下,創(chuàng)建新的widget,然后根據(jù)項目中所需要的按鍵個數(shù)來確定軟鍵盤的大小,在此,選擇軟鍵盤的外框大小為:540x160。軟鍵盤外框搭建完成之后,需要在軟鍵盤區(qū)域內(nèi)加入實際所需要的按鍵。將Widget Box下Buttons選項中的PushButton按鍵拖入到軟鍵盤區(qū)域內(nèi),在PushButton按鍵屬性的文本編輯中填入按鍵值,比如“1”。在PushButton按鍵屬性的名字編輯中填入按鍵名,比如“n1”。
同理,在軟鍵盤區(qū)域內(nèi)拖入實際所需要按鍵個數(shù)的按鍵,根據(jù)所需要的鍵值修改每個按鍵上面的文本屬性和名字屬性。按照一般鍵盤的布局對它們進行排列
DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY
評論