新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Qt/E的嵌入式Linux中文輸入法的設計與實現

        基于Qt/E的嵌入式Linux中文輸入法的設計與實現

        作者: 時間:2012-05-30 來源:網絡 收藏

        圖3 軟鍵盤界面

        圖3軟鍵盤界面

        軟鍵盤左上角的CheckBox用于中英文切換,選中時,輸人,不選時輸入的則是英文,在英文輸入時,若按下Caps鍵軟鍵盤面板上的數字鍵,切換成常用符號,英文全變成大寫。1-r按鍵是本的特色,按下1-r鍵可以選擇需要輸出漢字的字體和大小,其余的按鍵功能同Pc機鍵盤。

        因為沒有桌面管理程序,本文還了一個置頂的浮動框,用于打開軟鍵盤。當點擊按鍵時,彈出軟鍵盤。

        2。3

        /E輸入法基類為QWSInputMethod,在這個基類中定義了一些接口用以支持輸入法程序,并從QWSInputMethod這個類繼承出一個輸入法類,在這個類中處理鍵盤和鼠標事件,把接收到的鍵盤事件按照輸入法的編碼規則轉換為對應的,一個漢字,或者是一個短語,并把最終用戶的選擇發送到當前編輯窗口。

        1nputMethod類繼承QWSInputMethod類來輸入法的處理,在這里的幾個主要的接口函數有:

        virtualboolfilter(intunicode,intkeycode,intmodifiers,bootisPress,boolautoRepeat)

        這個接口的作用就是過濾鍵盤事件,在這個函數中處理鍵盤輸人,并且根據相應的輸人法方法把鍵盤輸入轉換為相應的中文。

        voidsendc0mmitstring(constQStringeommitString,intrepIaceFromPosion:0,intreplaceLength=0)

        這個接口函數表示把相應的字符串發送到當前編輯窗口,一般用于在用戶作出最終的選擇之后,把相應的字符串發送出去。

        voidsel1dPreeditsng(constQStringpreeditString,inteursorPosition,intselectionLength=0)

        把當前正在編輯的字符串發送給當前編輯窗口。

        為了使輸入法成為系統級輸入法,在這個類中還需要輸入法安裝/卸載函數,這樣系統中才會有全局的輸人法模塊,輸入法才能工作。

        install和release輸入法的函數,就是通過調用QWSServer類中的成員函數來實現的。QWSServer::

        setCurrentInputMethod這個函數為當前的/E安裝一個輸入法,如設置拼音輸入法:

        QWSServer::setcurrentInputMeth0d(pinyin)

        如果把參數設置為NULL,就是卸載輸入法。輸入法安裝完成之后,輸入法類中就可以接收到鍵盤事件了,拼音輸入法的具體流程見圖4。

        圖4 拼音輸入法按鍵處理流程

        圖4拼音輸入法按鍵處理流程

        最終拼音輸入法在三星S3C2440平臺上運行的界面見圖5。

        圖5 運行結果

        圖5運行結果

        3結語

        本文三星S3C2440平臺,實現了/E4。5的拼音輸入法,并重點闡述了Qt/E的中文輸入法原理,在這個基礎上可以比較容易地開發出其他的中文輸入法。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        linux相關文章:linux教程



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 信丰县| 轮台县| 平昌县| 莒南县| 高碑店市| 车致| 从化市| 曲阳县| 东辽县| 桦川县| 上蔡县| 东兰县| 龙州县| 资阳市| 罗甸县| 沁源县| 四平市| 嫩江县| 丰台区| 永平县| 柳州市| 榆树市| 临泽县| 南宁市| 白城市| 嵩明县| 乌兰察布市| 山西省| 双桥区| 贡山| 金坛市| 九寨沟县| 福州市| 罗甸县| 吴桥县| 连江县| 武城县| 宁津县| 竹山县| 东安县| 吉安市|