基于QT/E的嵌入式Linux系統(tǒng)的軟鍵盤(pán)實(shí)現(xiàn)
圖4中,初始化按鍵時(shí),可以使用QSignalMapper類(lèi)來(lái)捆綁不同按鍵所發(fā)送的一系列無(wú)參數(shù)信號(hào),并將其轉(zhuǎn)發(fā)為有參數(shù)的信號(hào):
QSignalMapper*mapper=new QSignalMapper(this);
QSignalMapper的主要應(yīng)用為可以實(shí)現(xiàn)一個(gè)函數(shù)響應(yīng)不同按鈕的功能,下面舉例來(lái)說(shuō)明圖4的具體實(shí)現(xiàn)過(guò)程:
首先設(shè)置軟鍵盤(pán)界面名稱(chēng)為ui,然后以數(shù)字鍵“1”為例:將在圖3中數(shù)字鍵1對(duì)應(yīng)的按鍵名稱(chēng)設(shè)為:n1,在圖4中的第(1)步中,建立鍵值“1”所對(duì)應(yīng)的映射,代碼如下:
mapper->setMapping(ui.n1,“1”);
接著,在圖4中的第(2)步,需要建立鍵值clicked對(duì)應(yīng)的信號(hào)與槽之間的關(guān)系代碼如下:
connect(ui.n1,SIGNAL(clicked()),mapper,SLOT(map()));
最后,將所需要用到的字母或者數(shù)字通過(guò)上述方式連接到槽函數(shù)中。如圖4中的(3),將這些所要求得到的字母或者數(shù)字發(fā)送給焦點(diǎn)控件,代碼如下:
connect(mapper,signal(mapped(const QString)),im,slot(sendcontent(const QStling)))
上面語(yǔ)句中sendcontent()函數(shù)為發(fā)射子函數(shù),具體代碼如下:
sendCommitString(content); (1)
content.clear(); (2)
語(yǔ)句(1)將焦點(diǎn)控件內(nèi)的字母和數(shù)字發(fā)送出去,語(yǔ)句(2)清除發(fā)送框中的字母和數(shù)字,供下一次使用。
可以采用同樣的方式,對(duì)軟鍵盤(pán)中其它的按鍵進(jìn)行映射函數(shù)和連接函數(shù)的編寫(xiě),然后在arm-linux-gcc環(huán)境下編譯,生成可以在arm板上運(yùn)行的二進(jìn)制文件。
3.3 下載到目標(biāo)板上運(yùn)行
本文的設(shè)計(jì)思路是:先將程序代碼在PC機(jī)上調(diào)試通過(guò),然后將調(diào)試通過(guò)的程序代碼在RAM-linux-gcc環(huán)境下進(jìn)行編譯,生成可以在RAM板上運(yùn)行的二進(jìn)制文件,最后將此二進(jìn)制文件下載到目標(biāo)板中。本文的前提是QT4.5.3環(huán)境已經(jīng)移植到開(kāi)發(fā)板上,具體移植步驟在這里不作介紹。在終端上面,運(yùn)行啟動(dòng)軟鍵盤(pán)指令,命令行后面加上“-qws”指令,運(yùn)行結(jié)果如圖5所示。本文引用地址:http://butianyuan.cn/article/148906.htm
圖5是在實(shí)際項(xiàng)目中需要的預(yù)設(shè)手機(jī)號(hào)碼的界面,在系統(tǒng)運(yùn)行前要先設(shè)置手機(jī)號(hào)碼,以便系統(tǒng)故障時(shí)能夠自動(dòng)的給對(duì)應(yīng)的手機(jī)用戶(hù)發(fā)送預(yù)警信息,使用戶(hù)能夠?qū)崟r(shí)的了解自己系統(tǒng)的運(yùn)行狀態(tài)。在該界面中,準(zhǔn)備預(yù)設(shè)手機(jī)號(hào)碼時(shí),直接選擇打開(kāi)軟鍵盤(pán)按鈕,圖3所示的預(yù)制的軟鍵盤(pán)會(huì)彈出界面,選擇要求預(yù)設(shè)的手機(jī)號(hào)碼值,完成之后選擇exit按鍵,軟鍵盤(pán)關(guān)閉。在此就可以用圖5所示的軟鍵盤(pán)完成手機(jī)號(hào)碼的預(yù)設(shè)。
4 結(jié)束語(yǔ)
隨著Linux操作系統(tǒng)的廣泛應(yīng)用以及人們對(duì)GUI人機(jī)交互界面的更多需求,本文在linux操作系統(tǒng)的QT開(kāi)發(fā)套件下,分析了軟鍵盤(pán)實(shí)現(xiàn)的原理,并完成了軟鍵盤(pán)的設(shè)計(jì)。此軟件盤(pán)可以根據(jù)用戶(hù)的要求來(lái)添加按鍵,與外部接入實(shí)體鍵盤(pán)相比,不僅便利,還節(jié)約成本。通過(guò)實(shí)踐證明此軟鍵盤(pán)具有較強(qiáng)的實(shí)時(shí)性和可靠性,可以廣泛的應(yīng)用于各種QT界面中。
DIY機(jī)械鍵盤(pán)相關(guān)社區(qū):機(jī)械鍵盤(pán)DIY
評(píng)論