《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于QT/E的嵌入式Linux系統的軟鍵盤實現
基于QT/E的嵌入式Linux系統的軟鍵盤實現
現代電子技術
謝 芬,潘 麗,劉守印
摘要: 隨著嵌入式技術的不斷發展,嵌入式系統在各種領域中得到了廣泛的應用。本文針對嵌入式系統需要在顯示屏上實現字符的輸入,在Linux環境下,利用QT/E庫軟件,實現了軟鍵盤設計。主要介紹了軟鍵盤的設計以及軟鍵盤實現的程序編寫。
Abstract:
Key words :

隨著對嵌入式系統體積小型化和操作人性化的要求,以及大尺寸觸摸式顯示屏的廣泛應用,在嵌入式系統中采用軟鍵盤實現字符的輸入,已經成為目前的發展主流。QT是一個跨平臺的C++圖形界面庫,是由挪威TrollTech公司推出的產品。它采用的是面向對象的程序設計思想,因此,具有良好的可擴展性和可移植性,同時支持多個GUI平臺的交互開發。QT采用了良好的封裝機制,使得它的模塊化程度非常高,可重用性好,開發方便。憑借其良好的性能,QT已成為目前GUI開發中使用最為廣泛的圖形界面庫之一。QT/E(QT/Embedded)是用于嵌入式系統的QT版本。QT/E去掉了對XLib的依賴而直接工作于Frame Buffer上,因而效率更高,文中主要使用QT4.5.3版本,在嵌入式Linux環境下實現軟鍵盤設計。

1 QT/E體系結構
QT/E是2001年Trolltech公司開發的一款面向嵌入式系統的QT版本。它采用輕量級窗口系統,完全摒棄了底層的XLib,以Framebuffer作為底層圖形接口,極大地減少了對內存的消耗。QT/E在上層仍然保持著原來的QT架構,因此,針對在Xwindow上設計的QT程序仍然具有很好的移植性。QT/E的基本體系結構如圖1所示。

c.JPG


1)QT/E體系結構中的圖形引擎是通過相關的圖形算法和Framebuffer操作底層的硬件設備來實現的;事件驅動則是通過底層的輸入輸出設備驅動來實現對外界事件的響應。
2)如圖1所示,由圖形引擎層實現對圖形界面的繪圖操作,然后由QT基本類提供對外界的操作接口。其中,圖形類提供圖形操作接口,比如:畫線、畫矩形等;控件類通過繼承公共抽象類QWidget來實現基本的控件,為外界提供接口。

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

d.JPG



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”。
同理,在軟鍵盤區域內拖入實際所需要按鍵個數的按鍵,根據所需要的鍵值修改每個按鍵上面的文本屬性和名字屬性。按照一般鍵盤的布局對它們進行排列

3.2 軟鍵盤實現
如圖3所示,首先建立了足項目要求的軟鍵盤的基本模型,接下來要實現的就是當按鍵響應時能夠讀出鍵盤值并將其發送出去,具體實現的流程如圖4所示。

a.JPG

e.JPG

圖4中,初始化按鍵時,可以使用QSignalMapper類來捆綁不同按鍵所發送的一系列無參數信號,并將其轉發為有參數的信號:
QSignalMapper*mapper=new QSignalMapper(this);
QSignalMapper的主要應用為可以實現一個函數響應不同按鈕的功能,下面舉例來說明圖4的具體實現過程:
首先設置軟鍵盤界面名稱為ui,然后以數字鍵“1”為例:將在圖3中數字鍵1對應的按鍵名稱設為:n1,在圖4中的第(1)步中,建立鍵值“1”所對應的映射,代碼如下:
mapper->setMapping(ui.n1,“1”);
接著,在圖4中的第(2)步,需要建立鍵值clicked對應的信號與槽之間的關系代碼如下:
connect(ui.n1,SIGNAL(clicked()),mapper,SLOT(map()));
最后,將所需要用到的字母或者數字通過上述方式連接到槽函數中。如圖4中的(3),將這些所要求得到的字母或者數字發送給焦點控件,代碼如下:
connect(mapper,signal(mapped(const QString&)),im,slot(sendcontent(const QStling&)))
上面語句中sendcontent()函數為發射子函數,具體代碼如下:
sendCommitString(content); (1)
content.clear(); (2)
語句(1)將焦點控件內的字母和數字發送出去,語句(2)清除發送框中的字母和數字,供下一次使用。
可以采用同樣的方式,對軟鍵盤中其它的按鍵進行映射函數和連接函數的編寫,然后在arm-linux-gcc環境下編譯,生成可以在arm板上運行的二進制文件。
3.3 下載到目標板上運行
本文的設計思路是:先將程序代碼在PC機上調試通過,然后將調試通過的程序代碼在RAM-linux-gcc環境下進行編譯,生成可以在RAM板上運行的二進制文件,最后將此二進制文件下載到目標板中。本文的前提是QT4.5.3環境已經移植到開發板上,具體移植步驟在這里不作介紹。在終端上面,運行啟動軟鍵盤指令,命令行后面加上“-qws”指令,運行結果如圖5所示。

b.JPG


圖5是在實際項目中需要的預設手機號碼的界面,在系統運行前要先設置手機號碼,以便系統故障時能夠自動的給對應的手機用戶發送預警信息,使用戶能夠實時的了解自己系統的運行狀態。在該界面中,準備預設手機號碼時,直接選擇打開軟鍵盤按鈕,圖3所示的預制的軟鍵盤會彈出界面,選擇要求預設的手機號碼值,完成之后選擇exit按鍵,軟鍵盤關閉。在此就可以用圖5所示的軟鍵盤完成手機號碼的預設。

4 結束語
隨著Linux操作系統的廣泛應用以及人們對GUI人機交互界面的更多需求,本文在linux操作系統的QT開發套件下,分析了軟鍵盤實現的原理,并完成了軟鍵盤的設計。此軟件盤可以根據用戶的要求來添加按鍵,與外部接入實體鍵盤相比,不僅便利,還節約成本。通過實踐證明此軟鍵盤具有較強的實時性和可靠性,可以廣泛的應用于各種QT界面中。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          最新成人在线| 欧美性大战xxxxx久久久| 国产精品视频午夜| 亚洲风情亚aⅴ在线发布| 性一交一乱一区二区洋洋av| 久久久久久一区二区三区| 亚洲最黄网站| 国产精品自在欧美一区| 美女尤物久久精品| 亚洲一区日本| 亚洲激情影院| 母乳一区在线观看| 欧美大尺度在线观看| 欧美精品日韩一本| 在线精品国产成人综合| 亚洲欧美日韩精品在线| 黄色成人小视频| 美国十次了思思久久精品导航| 久久一区二区三区国产精品| 欧美不卡一卡二卡免费版| 午夜视频一区在线观看| 欧美高清视频一区二区三区在线观看| 亚洲激情女人| 美脚丝袜一区二区三区在线观看| 伊大人香蕉综合8在线视| 亚洲一区二区免费| 久久久国产一区二区三区| 1024亚洲| 亚洲在线视频网站| 国产精品羞羞答答| 久久久久久久久久码影片| 夜夜嗨av一区二区三区中文字幕| 国产一区二区三区四区三区四| 亚欧美中日韩视频| 欧美一区二区精品久久911| 亚洲图片在区色| 亚洲精品日韩综合观看成人91| 麻豆91精品91久久久的内涵| 欧美在线短视频| 国产精品久久久久久久午夜片| 另类av一区二区| 欧美一乱一性一交一视频| 在线欧美小视频| 国产精品毛片大码女人| 性久久久久久久久久久久| 国产欧美日韩亚洲一区二区三区| 欧美激情aⅴ一区二区三区| 狠狠色狠狠色综合日日91app| 嫩草成人www欧美| 欧美日韩一区在线观看视频| 亚洲日本中文字幕免费在线不卡| 亚洲视频在线观看免费| 国产精品二区三区四区| 99视频精品免费观看| 久久人人97超碰国产公开结果| 久久久五月婷婷| 麻豆精品精品国产自在97香蕉| 亚洲性感激情| 99精品福利视频| 亚洲一区二区三区精品在线| 美女精品自拍一二三四| 国外成人免费视频| 激情六月综合| 欧美三级网址| 久久久久99精品国产片| 亚洲午夜久久久久久久久电影网| 日韩天堂在线视频| 欧美日产在线观看| 国产色综合久久| 欧美日韩中文字幕综合视频| 国产欧美精品一区二区三区介绍| 中文日韩在线视频| 欧美成年人视频网站欧美| 欧美有码视频| 亚洲美女尤物影院| 老牛影视一区二区三区| 91久久香蕉国产日韩欧美9色| 久久亚洲风情| 亚洲天堂av电影| 亚洲在线中文字幕| 久久久久在线| 久久精品人人爽| 美女爽到呻吟久久久久| 国产亚洲美州欧州综合国| 国产精品国产三级国产aⅴ无密码| 久久综合给合久久狠狠狠97色69| 一区二区三区国产在线| 久久久999成人| 开心色5月久久精品| 亚洲国产女人aaa毛片在线| 国产嫩草一区二区三区在线观看| 国产欧美日本在线| 午夜久久tv| 午夜欧美不卡精品aaaaa| 国产精品自拍三区| 中国成人亚色综合网站| 可以看av的网站久久看| 国产深夜精品福利| 国产亚洲欧美激情| 欧美/亚洲一区| 国内精品视频一区| 国产精自产拍久久久久久| 亚洲第一在线综合在线| 久久不射2019中文字幕| 欧美一区二区视频网站| 亚洲美女在线视频| 国产欧美精品一区二区色综合| 国模私拍一区二区三区| 欧美专区亚洲专区| 欧美一区二区观看视频| 久久综合给合久久狠狠色| 伊人久久综合97精品| 国产综合色产| 99视频热这里只有精品免费| 欧美日韩一级片在线观看| 国产有码一区二区| 久久综合狠狠综合久久综青草| 狠狠色综合一区二区| 中日韩视频在线观看| 亚洲影院在线| 美女久久一区| 欧美成人午夜激情| 久久国产精品黑丝| 一区在线视频| 久久精品色图| 日韩午夜av在线| 亚洲精品视频在线观看免费| 欧美日韩国产免费| 亚洲国产欧美国产综合一区| 亚洲小视频在线观看| 欧美午夜视频一区二区| 国产日韩av高清| 欧美日韩另类一区| 欧美日韩亚洲一区二区三区| 一本色道久久88综合日韩精品| 老司机一区二区三区| 国产精品揄拍一区二区| 欧美一区二视频在线免费观看| 国产精品久久久久9999高清| 欧美午夜在线观看| 亚洲国产精品嫩草影院| 欧美日韩在线精品| 国产免费成人| 久久久久青草大香线综合精品| 国产精品hd| 国产精品入口日韩视频大尺度| 欧美一区二区三区在线播放| 99香蕉国产精品偷在线观看| 久久精品一区二区| 亚洲日本成人网| 亚洲另类春色国产| 日韩视频中文字幕| 国产模特精品视频久久久久| 亚洲人体1000| 亚洲一区二区三区视频| 欧美日韩国产一区二区三区| 午夜精品理论片| 久久久99免费视频| 国产综合在线视频| 国产精品看片资源| 亚洲欧美另类久久久精品2019| 久久综合色一综合色88| 日韩小视频在线观看专区| 久久国产免费看| 国产欧美一区二区视频| 欧美在线视频在线播放完整版免费观看| 久久久久久久久综合| 欧美一区深夜视频| 亚洲男人第一网站| 欧美午夜在线视频| 亚洲欧美亚洲| 欧美日韩亚洲一区二区三区四区| 欧美日韩综合视频网址| 欧美激情中文字幕乱码免费| 欧美日韩在线免费视频| 亚洲第一在线视频| 久久久欧美精品sm网站| 亚洲人体影院| 麻豆乱码国产一区二区三区| 亚洲国产精品久久人人爱蜜臀| 欧美三级乱码| 国产精品你懂的| 国产欧美日韩精品丝袜高跟鞋| 久久人人97超碰人人澡爱香蕉| 你懂的亚洲视频| 中文精品一区二区三区| 欧美日韩专区在线| 欧美日本韩国在线| 暖暖成人免费视频| 欧美一区二视频| 亚洲成色精品| 亚洲一区二区三区免费在线观看| 亚洲一区视频在线观看视频| 欧美一区影院| 久久国产精品第一页| 中文精品99久久国产香蕉| 黄色av成人| 欧美紧缚bdsm在线视频| 亚洲精品综合在线| 美女精品视频一区| 国产在线国偷精品产拍免费yy| 欧美高潮视频| 亚洲欧洲美洲综合色网| 欧美一区二区免费视频| 99re8这里有精品热视频免费| 久久久久国产成人精品亚洲午夜| 欧美婷婷六月丁香综合色| 亚洲美女电影在线| 国产精品自拍视频| 欧美精品首页| 久久免费国产精品1| 一区二区在线不卡| 亚洲一区二区3| 欧美一二三视频| 欧美在线视频免费观看| 一区二区三区精品| 亚洲一区亚洲二区| 国产精品日韩在线| 黑人一区二区三区四区五区| 9i看片成人免费高清| 免费不卡欧美自拍视频| 亚洲视频一区二区| 久久综合狠狠综合久久综青草| 在线中文字幕日韩| 免费黄网站欧美| 国产麻豆日韩| 久久免费99精品久久久久久| 伊人成人在线| 亚洲精品久久久蜜桃| 亚洲一级黄色片| 亚洲欧洲日产国产综合网| 正在播放亚洲| 欧美经典一区二区| 欧美亚洲免费在线| 亚洲欧洲一区二区三区在线观看| 国产精品热久久久久夜色精品三区| 欧美深夜福利| 国模精品一区二区三区| 一区二区三区亚洲| 亚洲国产高清在线观看视频| 国产在线国偷精品产拍免费yy| 国产欧美精品一区aⅴ影院| 亚洲裸体在线观看| 欧美成人综合网站| 欧美日本二区| 久久蜜桃av一区精品变态类天堂| 久久婷婷亚洲| 欧美国产日韩亚洲一区| 91久久国产综合久久| 日韩手机在线导航| 免费试看一区| 欧美在线一区二区| 欧美日韩国产另类不卡| 国产精品成人v| 欧美日韩一区二区国产| 亚洲免费影视第一页| 免费成人黄色| 国产亚洲精品久久久久久| 久久久国产视频91| 午夜精品电影| 日韩视频免费观看高清在线视频| 国产精品国产三级国产aⅴ浪潮| 欧美另类极品videosbest最新版本| 午夜久久久久久久久久一区二区| 亚洲性图久久| 在线观看日韩专区| 久久久国产视频91| 国产精品亚洲美女av网站| 99国产精品久久| 亚洲高清电影| 欧美一区二区三区免费观看| 亚洲第一在线综合网站| 日韩视频三区| 久久日韩粉嫩一区二区三区| 欧美日韩国产首页| 欧美高清在线视频观看不卡| 午夜欧美不卡精品aaaaa| 国产精品国码视频| 欧美一区二区三区婷婷月色| 精东粉嫩av免费一区二区三区| 午夜精品久久久久久久99水蜜桃| 一区在线观看视频| 欧美日韩视频| 午夜日韩av| 国产精品嫩草影院一区二区| 激情五月婷婷综合| 亚洲福利免费| 男人的天堂亚洲在线| 欧美在线一二三四区| 亚洲欧洲日本一区二区三区| 欧美伊人久久大香线蕉综合69| 国产精品美女诱惑| 日韩午夜在线视频| 亚洲另类一区二区| 国产精品手机视频| 亚洲国产另类久久精品| 在线播放中文字幕一区| 国产精品久久久久久久久久直播| 国产精品久久久久久久久久直播| 国产色爱av资源综合区| 老色鬼精品视频在线观看播放| 欧美一区日韩一区| 欧美黄色aa电影| 99伊人成综合| 欧美精品久久久久久| 欧美激情在线播放| 一区二区三区精品视频在线观看| 国产精品久久久久久一区二区三区| 在线视频免费在线观看一区二区| 亚洲精品麻豆| 在线观看日韩| 国产精品一区在线观看| 国产精品久久久久久亚洲调教| 亚洲一区二区在线视频| 国产日韩欧美亚洲一区| 嫩草国产精品入口| 欧美性天天影院| 伊人精品视频| 欧美性天天影院| 亚洲欧美不卡| 欧美精品在欧美一区二区少妇| 在线观看亚洲视频啊啊啊啊| 久久久精品日韩欧美| 91久久久久久久久| 亚洲自拍三区| 亚洲欧美日韩国产另类专区| 亚洲欧洲在线播放| 国产精品三级视频|