新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于QT/E的嵌入式Linux系統(tǒng)的軟鍵盤(pán)實(shí)現(xiàn)

        基于QT/E的嵌入式Linux系統(tǒng)的軟鍵盤(pán)實(shí)現(xiàn)

        作者: 時(shí)間:2012-06-13 來(lái)源:網(wǎng)絡(luò) 收藏

        2 /E通信機(jī)制
        在圖形界面編程時(shí),我們經(jīng)常要界面之間的相互切換或者相互通知,更具體的來(lái)說(shuō)就是需要類(lèi)與類(lèi)之間的相互通信。比如,在軟的設(shè)計(jì)中,當(dāng)一個(gè)事件產(chǎn)生時(shí),就會(huì)發(fā)出一個(gè)信號(hào)。信號(hào)和槽(Signal&slot)機(jī)制是的核心特征,在庫(kù)中有很多已經(jīng)設(shè)置好的信號(hào),比如:clicked()、triggered()等,開(kāi)發(fā)人員也可以根據(jù)需要來(lái)自定義某些信號(hào)。事件的響應(yīng)對(duì)應(yīng)著QT窗口里的槽函數(shù),和信號(hào)類(lèi)似,有很多預(yù)定義的槽,比如exit()、quit()等,用戶(hù)也可以根據(jù)需要來(lái)添加自己的槽函數(shù)。
        當(dāng)對(duì)象改變其狀態(tài)時(shí),信號(hào)就由該對(duì)象發(fā)射(emit)出去,這就是對(duì)象所要做的全部事情,它不知道另一端是誰(shuí)在接收這個(gè)信號(hào)。這就是真正的信息封裝,它確保對(duì)象被當(dāng)作一個(gè)真正的軟件組件來(lái)使用。槽用于接收信號(hào),但它們是普通的對(duì)象成員函數(shù)。一個(gè)槽并不知道是否有任何信號(hào)與自己相連接。而且,對(duì)象并不了解具體的通信機(jī)制。可以將很多信號(hào)與單個(gè)槽進(jìn)行連接,也可以將單個(gè)信號(hào)與很多槽進(jìn)行連接,甚至于將一個(gè)信號(hào)與另外一個(gè)信號(hào)相連接也是可能的。
        因此,整個(gè)QT窗口的設(shè)計(jì)簡(jiǎn)單、靈活且擴(kuò)展性好。信號(hào)與槽之間的鏈接一般用connect()函數(shù)來(lái),具體關(guān)聯(lián)方式和實(shí)現(xiàn)函數(shù)如圖2所示:

        本文引用地址:http://www.104case.com/article/148906.htm

        d.JPG



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

        linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

        DIY機(jī)械鍵盤(pán)相關(guān)社區(qū):機(jī)械鍵盤(pán)DIY




        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 林口县| 石门县| 漠河县| 江口县| 中超| 遂溪县| 中江县| 延庆县| 富源县| 滦南县| 汕头市| 乐至县| 略阳县| 利川市| 平和县| 句容市| 同江市| 巴里| 云安县| 当涂县| 丰城市| 会昌县| 高清| 屯昌县| 桦甸市| 南木林县| 江西省| 交口县| 镇坪县| 漳平市| 温宿县| 淮北市| 香格里拉县| 和平县| 福泉市| 陇西县| 布尔津县| 固阳县| 如皋市| 南乐县| 南丰县|