基于Qtopia的嵌入式中文輸入法設計
在Qtopia的應用中,有許多需要用戶輸入本地文字的場合,如短信、通訊錄及記事本等,而Qtopia現有的輸入方式,是基于虛擬的QWER-TY全鍵盤的,在實際應用中,這種QWERTY全鍵盤不僅需要用戶雙手進行操作,而且由于按鍵排布緊密,從而導致誤碼率居高不下。
本文提出一種基于Qtopia的采用傳統九宮格方式的中文輸入法設計。傳統九宮格的虛擬鍵盤不僅符合大眾的使用習慣,而且可以實現單手操作,可以為用戶帶來舒適的輸入體驗,提高產品的市場占有率。
l Qtopia中文編碼及插件技術
要實現漢字在Qtopia系統里正確處理并顯示,必須滿足兩個前提條件:一是系統要有支持中文的編碼;另一個是要有能顯示這個中文編碼的字符字體存在。本文的Linux開發環境代碼編輯器的編碼為GBK,目標機上的Qtopia平臺使用Unicode編碼,所以在程序里首先按如下的方式進行編碼轉換:

接下來為Qtopia系統提供中文字體,Qtopia支持多種字體。包括ttf.bdf,qpf格式。其中qpf格式的字體使用最為方便,本文采用支持中文的Simsun_120_50.qpf字體文件,把該字體文件保存至MYMQTEDIR/lib/fonts目錄下,修改字體鏈接fontdir文件,在菜單Appearance的Font選項里選中該字體,此時系統中文顯示正常。
在Qtopm中,輸入法是以基于插件的方式實現的,Qtopia插件分為應用程序插件、服務器插件和系統插件3種。其中,應用程序插件是應用程序使用的插件,服務器插件是在啟動時由Qtopia服務器進行裝載的插件,系統插件是在應用程序啟動時被裝載的插件。本文所涉及的輸入法屬于服務器插件。
Qtopia中通過類似COM的層來使用插件,建立一個插件的基本步驟為:創建插件的接口;寫插件將提供的功能函數;為接口定義子類;創建一個插件實例;裝載插件。
在實現輸入法插件的創建后,需將該插件編譯成動態鏈接庫的形式,并安裝到插件對應的目錄下,對于輸入法插件而言。指定的存放目錄為$QTEDIR/plugins/inputmethods。系統啟動時,插件裝載器會自動裝載這個文件夾里的輸入法插件。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論