何火勝 陳增標(biāo)
摘 要:中文輸入是中文應(yīng)用軟件進(jìn)行人機交互必不可少的部分,Qt/E是目前廣泛運用于手持電子設(shè)備且面向嵌入式Linux系統(tǒng)的Qt版本,但在Qt/E平臺下應(yīng)用和開發(fā)的嵌入式中文輸入法存在耗費系統(tǒng)資源大的問題。通過對一個界面友好、功能完善的基于嵌入式操作系統(tǒng)Linux下Qt/E的耗資源少的輕量級中文拼音輸入法的設(shè)計,闡述了Linux操作系統(tǒng)Qt/E開發(fā)環(huán)境下的中文拼音輸入法的基本原理,介紹了基于Qt圖形用戶界面(GUI)輕量級中文拼音輸入法的設(shè)計方案和具體實現(xiàn)關(guān)鍵,并給出了軟件設(shè)計流程和程序關(guān)鍵代碼。
關(guān)鍵詞:Linux;Qt/E;圖形用戶界面;中文拼音輸入法
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-6835(2014)01-0140-02
隨著嵌入式的迅猛發(fā)展,在手持設(shè)備的移動終端中,廣泛采用以液晶觸摸顯示屏實現(xiàn)的人性化的人機交互式GUI。Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),具有穩(wěn)定、高效率、功能齊全和兼容范圍廣等特點。Qt是1991年奇趣科技開發(fā)的一個跨平臺的C++圖形用戶界面應(yīng)用程序框架,它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的功能。目前面向嵌入式Linux系統(tǒng)的Qt版本——Qt/E,是當(dāng)前嵌入式GUI開發(fā)者比較常用的開發(fā)工具,廣泛運用于手持電子設(shè)備。國內(nèi)外在Qt/E平臺下應(yīng)用和開發(fā)的嵌入式中文輸入法主要有兩種:一種是移植一般PC機Windows系統(tǒng)下現(xiàn)有的中文輸入法,該輸入法會導(dǎo)致系統(tǒng)需要很大的系統(tǒng)資源,影響顯示的速度;另外一種輸入法是使用了Qt/E平臺自帶插件方法的輸入法,但該輸入法給這類設(shè)備帶來了不必要的額外開銷,造成了系統(tǒng)資源的嚴(yán)重浪費。針對以上情況,設(shè)計了一個界面友好、功能完善的基于嵌入式操作系統(tǒng)Linux下Qt/E的耗資源少的輕量級中文拼音輸入法。
該輸入法可以實現(xiàn)中英文輸入的切換,實現(xiàn)中文、英文、數(shù)字及常用標(biāo)點符號的輸入,最大限度地實現(xiàn)了易移植性和易操作性。該輸入法運行穩(wěn)定、安全可靠。
1 中文輸入法的原理
中文輸入法是將漢字輸入計算機或手機等電子設(shè)備而采用的編碼方法,是中文信息處理的重要技術(shù)。在計算機標(biāo)準(zhǔn)鍵盤上,所有輸入的漢字都以機內(nèi)碼的形式存儲在介質(zhì)中,而在進(jìn)行漢字傳輸時,又都以交換碼的形式發(fā)送和接收。中文輸入法的實質(zhì)是建立一種按鍵組合到漢字編碼的映射關(guān)系,而拼音輸入法通過輸入漢字的拼音,從字庫中查找出與之對應(yīng)的漢字并顯示出來。
QFrame是Qt/E的一個類,本文從此類中繼承出了一個中文輸入法的類,并在該類中定義了畫軟鍵盤、過濾事件、接收和發(fā)送鍵值等函數(shù),用以支持輸入法的程序設(shè)計,重新實現(xiàn)了按鍵和鼠標(biāo)事件把接收到的事件按照用戶所需要輸入漢字的拼音從字庫中查找出與之對應(yīng)的漢字或詞組,發(fā)送給當(dāng)前的顯示窗口,或者把用戶最后選擇的漢字或詞組發(fā)送到當(dāng)前的顯示窗口,其中當(dāng)前顯示窗口中常用含QLineEdit或QMultiLineEdit類的編輯欄接收。
漢字的輸入過程一般如下:當(dāng)用戶在軟鍵盤上按下第一個按鍵時,輸入法會自動創(chuàng)建出輸入法的上下文,輸入法上下文包含輸入字符。當(dāng)有任何一個新的按鍵被按下時,輸入法就會主動嘗試著去創(chuàng)建與輸入相對應(yīng)的中文字符、英文字符和數(shù)字,等等。此時,激活了中文輸入法的上下文,用戶可以自由地在中文輸入法的上下文中前后移動光標(biāo)。當(dāng)用戶認(rèn)為輸入已經(jīng)完成的時候,會選擇以按鍵或者點擊方式來選擇最終的字符串并發(fā)送到當(dāng)前的編輯窗口。
2 中文輸入法設(shè)計與實現(xiàn)
2.1 輸入法功能模塊
本輸入法實現(xiàn)功能是:中文,大、小寫英文,常用標(biāo)點符號的輸入,具有軟鍵盤,并支持觸摸屏,具體功能模塊如圖1所示。
圖1 輸入法功能模塊
2.2 輸入法流程圖
本輸入法的流程是:用戶輸入,軟鍵盤得到響應(yīng),系統(tǒng)判斷是否處于中文輸入狀態(tài):如果是,進(jìn)入中文輸入流程;如果否,進(jìn)入英文輸入流程,具體流程圖如圖2所示。
圖2 輸入法流程圖
2.3 關(guān)鍵中文輸入模塊介紹
中文輸入模塊實現(xiàn)了中文輸入功能,具體實現(xiàn)過程如下:用戶選擇了中文輸入狀態(tài),點擊軟鍵盤,輸入拼音,通過相應(yīng)的編碼,查找到字庫中與之對應(yīng)的漢字,顯示在編輯框中,用戶選擇所需輸入的漢字,中文輸入完成。
系統(tǒng)中實現(xiàn)中文輸入的接口為:
2.4 輸入窗口界面實現(xiàn)
輸入窗口界面由軟鍵盤、中英文輸入法的切換按鍵框、顯示拼音的輸入框和顯示漢語字符的顯示框組成。用戶選擇中文輸入模式,就可以方便地輸入中文。用戶點擊軟鍵盤上的按鍵,輸入需要的漢字對應(yīng)的拼音,輸入法根據(jù)拼音從字庫中查找出與之對應(yīng)的漢字發(fā)送到當(dāng)前的編輯窗口,用戶再選擇自己所要輸入的漢字,如圖3所示。
圖3 軟鍵盤中文輸入界面
3 總結(jié)
本文詳細(xì)討論了在嵌入式操作系統(tǒng)Linux下基于Qt/E的中文拼音輸入法的設(shè)計關(guān)鍵技術(shù),列出了實現(xiàn)中文拼音輸入的步驟和關(guān)鍵代碼。文中所涉及的中文拼音輸入已在實際工程中實現(xiàn),具有易用、快速、耗資源少的特點,能夠滿足輸入中文的需要。
參考文獻(xiàn)
[1]李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)從入門到精通[M].北京:清華大學(xué)出版社,2007.
[2]陳曉雷,謝文,鄧浩.基于Qt/E的嵌入式Linux中文輸入法的設(shè)計與實現(xiàn)[J].鄭州輕工業(yè)學(xué)院學(xué)報(自然科學(xué)版),2009,24(6):1.
[3]徐英慧.基于Qtopia的嵌入式智能拼音輸入法設(shè)計[J].微計算機信息,2008,24(10):3.
[4]龍中花,廖建明.基于Qtopia的中文輸入法設(shè)計與實現(xiàn)[J].成都信息工程學(xué)院學(xué)報,2004,19(4):17.
〔編輯:白潔〕endprint
摘 要:中文輸入是中文應(yīng)用軟件進(jìn)行人機交互必不可少的部分,Qt/E是目前廣泛運用于手持電子設(shè)備且面向嵌入式Linux系統(tǒng)的Qt版本,但在Qt/E平臺下應(yīng)用和開發(fā)的嵌入式中文輸入法存在耗費系統(tǒng)資源大的問題。通過對一個界面友好、功能完善的基于嵌入式操作系統(tǒng)Linux下Qt/E的耗資源少的輕量級中文拼音輸入法的設(shè)計,闡述了Linux操作系統(tǒng)Qt/E開發(fā)環(huán)境下的中文拼音輸入法的基本原理,介紹了基于Qt圖形用戶界面(GUI)輕量級中文拼音輸入法的設(shè)計方案和具體實現(xiàn)關(guān)鍵,并給出了軟件設(shè)計流程和程序關(guān)鍵代碼。
關(guān)鍵詞:Linux;Qt/E;圖形用戶界面;中文拼音輸入法
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-6835(2014)01-0140-02
隨著嵌入式的迅猛發(fā)展,在手持設(shè)備的移動終端中,廣泛采用以液晶觸摸顯示屏實現(xiàn)的人性化的人機交互式GUI。Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),具有穩(wěn)定、高效率、功能齊全和兼容范圍廣等特點。Qt是1991年奇趣科技開發(fā)的一個跨平臺的C++圖形用戶界面應(yīng)用程序框架,它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的功能。目前面向嵌入式Linux系統(tǒng)的Qt版本——Qt/E,是當(dāng)前嵌入式GUI開發(fā)者比較常用的開發(fā)工具,廣泛運用于手持電子設(shè)備。國內(nèi)外在Qt/E平臺下應(yīng)用和開發(fā)的嵌入式中文輸入法主要有兩種:一種是移植一般PC機Windows系統(tǒng)下現(xiàn)有的中文輸入法,該輸入法會導(dǎo)致系統(tǒng)需要很大的系統(tǒng)資源,影響顯示的速度;另外一種輸入法是使用了Qt/E平臺自帶插件方法的輸入法,但該輸入法給這類設(shè)備帶來了不必要的額外開銷,造成了系統(tǒng)資源的嚴(yán)重浪費。針對以上情況,設(shè)計了一個界面友好、功能完善的基于嵌入式操作系統(tǒng)Linux下Qt/E的耗資源少的輕量級中文拼音輸入法。
該輸入法可以實現(xiàn)中英文輸入的切換,實現(xiàn)中文、英文、數(shù)字及常用標(biāo)點符號的輸入,最大限度地實現(xiàn)了易移植性和易操作性。該輸入法運行穩(wěn)定、安全可靠。
1 中文輸入法的原理
中文輸入法是將漢字輸入計算機或手機等電子設(shè)備而采用的編碼方法,是中文信息處理的重要技術(shù)。在計算機標(biāo)準(zhǔn)鍵盤上,所有輸入的漢字都以機內(nèi)碼的形式存儲在介質(zhì)中,而在進(jìn)行漢字傳輸時,又都以交換碼的形式發(fā)送和接收。中文輸入法的實質(zhì)是建立一種按鍵組合到漢字編碼的映射關(guān)系,而拼音輸入法通過輸入漢字的拼音,從字庫中查找出與之對應(yīng)的漢字并顯示出來。
QFrame是Qt/E的一個類,本文從此類中繼承出了一個中文輸入法的類,并在該類中定義了畫軟鍵盤、過濾事件、接收和發(fā)送鍵值等函數(shù),用以支持輸入法的程序設(shè)計,重新實現(xiàn)了按鍵和鼠標(biāo)事件把接收到的事件按照用戶所需要輸入漢字的拼音從字庫中查找出與之對應(yīng)的漢字或詞組,發(fā)送給當(dāng)前的顯示窗口,或者把用戶最后選擇的漢字或詞組發(fā)送到當(dāng)前的顯示窗口,其中當(dāng)前顯示窗口中常用含QLineEdit或QMultiLineEdit類的編輯欄接收。
漢字的輸入過程一般如下:當(dāng)用戶在軟鍵盤上按下第一個按鍵時,輸入法會自動創(chuàng)建出輸入法的上下文,輸入法上下文包含輸入字符。當(dāng)有任何一個新的按鍵被按下時,輸入法就會主動嘗試著去創(chuàng)建與輸入相對應(yīng)的中文字符、英文字符和數(shù)字,等等。此時,激活了中文輸入法的上下文,用戶可以自由地在中文輸入法的上下文中前后移動光標(biāo)。當(dāng)用戶認(rèn)為輸入已經(jīng)完成的時候,會選擇以按鍵或者點擊方式來選擇最終的字符串并發(fā)送到當(dāng)前的編輯窗口。
2 中文輸入法設(shè)計與實現(xiàn)
2.1 輸入法功能模塊
本輸入法實現(xiàn)功能是:中文,大、小寫英文,常用標(biāo)點符號的輸入,具有軟鍵盤,并支持觸摸屏,具體功能模塊如圖1所示。
圖1 輸入法功能模塊
2.2 輸入法流程圖
本輸入法的流程是:用戶輸入,軟鍵盤得到響應(yīng),系統(tǒng)判斷是否處于中文輸入狀態(tài):如果是,進(jìn)入中文輸入流程;如果否,進(jìn)入英文輸入流程,具體流程圖如圖2所示。
圖2 輸入法流程圖
2.3 關(guān)鍵中文輸入模塊介紹
中文輸入模塊實現(xiàn)了中文輸入功能,具體實現(xiàn)過程如下:用戶選擇了中文輸入狀態(tài),點擊軟鍵盤,輸入拼音,通過相應(yīng)的編碼,查找到字庫中與之對應(yīng)的漢字,顯示在編輯框中,用戶選擇所需輸入的漢字,中文輸入完成。
系統(tǒng)中實現(xiàn)中文輸入的接口為:
2.4 輸入窗口界面實現(xiàn)
輸入窗口界面由軟鍵盤、中英文輸入法的切換按鍵框、顯示拼音的輸入框和顯示漢語字符的顯示框組成。用戶選擇中文輸入模式,就可以方便地輸入中文。用戶點擊軟鍵盤上的按鍵,輸入需要的漢字對應(yīng)的拼音,輸入法根據(jù)拼音從字庫中查找出與之對應(yīng)的漢字發(fā)送到當(dāng)前的編輯窗口,用戶再選擇自己所要輸入的漢字,如圖3所示。
圖3 軟鍵盤中文輸入界面
3 總結(jié)
本文詳細(xì)討論了在嵌入式操作系統(tǒng)Linux下基于Qt/E的中文拼音輸入法的設(shè)計關(guān)鍵技術(shù),列出了實現(xiàn)中文拼音輸入的步驟和關(guān)鍵代碼。文中所涉及的中文拼音輸入已在實際工程中實現(xiàn),具有易用、快速、耗資源少的特點,能夠滿足輸入中文的需要。
參考文獻(xiàn)
[1]李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)從入門到精通[M].北京:清華大學(xué)出版社,2007.
[2]陳曉雷,謝文,鄧浩.基于Qt/E的嵌入式Linux中文輸入法的設(shè)計與實現(xiàn)[J].鄭州輕工業(yè)學(xué)院學(xué)報(自然科學(xué)版),2009,24(6):1.
[3]徐英慧.基于Qtopia的嵌入式智能拼音輸入法設(shè)計[J].微計算機信息,2008,24(10):3.
[4]龍中花,廖建明.基于Qtopia的中文輸入法設(shè)計與實現(xiàn)[J].成都信息工程學(xué)院學(xué)報,2004,19(4):17.
〔編輯:白潔〕endprint
摘 要:中文輸入是中文應(yīng)用軟件進(jìn)行人機交互必不可少的部分,Qt/E是目前廣泛運用于手持電子設(shè)備且面向嵌入式Linux系統(tǒng)的Qt版本,但在Qt/E平臺下應(yīng)用和開發(fā)的嵌入式中文輸入法存在耗費系統(tǒng)資源大的問題。通過對一個界面友好、功能完善的基于嵌入式操作系統(tǒng)Linux下Qt/E的耗資源少的輕量級中文拼音輸入法的設(shè)計,闡述了Linux操作系統(tǒng)Qt/E開發(fā)環(huán)境下的中文拼音輸入法的基本原理,介紹了基于Qt圖形用戶界面(GUI)輕量級中文拼音輸入法的設(shè)計方案和具體實現(xiàn)關(guān)鍵,并給出了軟件設(shè)計流程和程序關(guān)鍵代碼。
關(guān)鍵詞:Linux;Qt/E;圖形用戶界面;中文拼音輸入法
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-6835(2014)01-0140-02
隨著嵌入式的迅猛發(fā)展,在手持設(shè)備的移動終端中,廣泛采用以液晶觸摸顯示屏實現(xiàn)的人性化的人機交互式GUI。Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),具有穩(wěn)定、高效率、功能齊全和兼容范圍廣等特點。Qt是1991年奇趣科技開發(fā)的一個跨平臺的C++圖形用戶界面應(yīng)用程序框架,它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的功能。目前面向嵌入式Linux系統(tǒng)的Qt版本——Qt/E,是當(dāng)前嵌入式GUI開發(fā)者比較常用的開發(fā)工具,廣泛運用于手持電子設(shè)備。國內(nèi)外在Qt/E平臺下應(yīng)用和開發(fā)的嵌入式中文輸入法主要有兩種:一種是移植一般PC機Windows系統(tǒng)下現(xiàn)有的中文輸入法,該輸入法會導(dǎo)致系統(tǒng)需要很大的系統(tǒng)資源,影響顯示的速度;另外一種輸入法是使用了Qt/E平臺自帶插件方法的輸入法,但該輸入法給這類設(shè)備帶來了不必要的額外開銷,造成了系統(tǒng)資源的嚴(yán)重浪費。針對以上情況,設(shè)計了一個界面友好、功能完善的基于嵌入式操作系統(tǒng)Linux下Qt/E的耗資源少的輕量級中文拼音輸入法。
該輸入法可以實現(xiàn)中英文輸入的切換,實現(xiàn)中文、英文、數(shù)字及常用標(biāo)點符號的輸入,最大限度地實現(xiàn)了易移植性和易操作性。該輸入法運行穩(wěn)定、安全可靠。
1 中文輸入法的原理
中文輸入法是將漢字輸入計算機或手機等電子設(shè)備而采用的編碼方法,是中文信息處理的重要技術(shù)。在計算機標(biāo)準(zhǔn)鍵盤上,所有輸入的漢字都以機內(nèi)碼的形式存儲在介質(zhì)中,而在進(jìn)行漢字傳輸時,又都以交換碼的形式發(fā)送和接收。中文輸入法的實質(zhì)是建立一種按鍵組合到漢字編碼的映射關(guān)系,而拼音輸入法通過輸入漢字的拼音,從字庫中查找出與之對應(yīng)的漢字并顯示出來。
QFrame是Qt/E的一個類,本文從此類中繼承出了一個中文輸入法的類,并在該類中定義了畫軟鍵盤、過濾事件、接收和發(fā)送鍵值等函數(shù),用以支持輸入法的程序設(shè)計,重新實現(xiàn)了按鍵和鼠標(biāo)事件把接收到的事件按照用戶所需要輸入漢字的拼音從字庫中查找出與之對應(yīng)的漢字或詞組,發(fā)送給當(dāng)前的顯示窗口,或者把用戶最后選擇的漢字或詞組發(fā)送到當(dāng)前的顯示窗口,其中當(dāng)前顯示窗口中常用含QLineEdit或QMultiLineEdit類的編輯欄接收。
漢字的輸入過程一般如下:當(dāng)用戶在軟鍵盤上按下第一個按鍵時,輸入法會自動創(chuàng)建出輸入法的上下文,輸入法上下文包含輸入字符。當(dāng)有任何一個新的按鍵被按下時,輸入法就會主動嘗試著去創(chuàng)建與輸入相對應(yīng)的中文字符、英文字符和數(shù)字,等等。此時,激活了中文輸入法的上下文,用戶可以自由地在中文輸入法的上下文中前后移動光標(biāo)。當(dāng)用戶認(rèn)為輸入已經(jīng)完成的時候,會選擇以按鍵或者點擊方式來選擇最終的字符串并發(fā)送到當(dāng)前的編輯窗口。
2 中文輸入法設(shè)計與實現(xiàn)
2.1 輸入法功能模塊
本輸入法實現(xiàn)功能是:中文,大、小寫英文,常用標(biāo)點符號的輸入,具有軟鍵盤,并支持觸摸屏,具體功能模塊如圖1所示。
圖1 輸入法功能模塊
2.2 輸入法流程圖
本輸入法的流程是:用戶輸入,軟鍵盤得到響應(yīng),系統(tǒng)判斷是否處于中文輸入狀態(tài):如果是,進(jìn)入中文輸入流程;如果否,進(jìn)入英文輸入流程,具體流程圖如圖2所示。
圖2 輸入法流程圖
2.3 關(guān)鍵中文輸入模塊介紹
中文輸入模塊實現(xiàn)了中文輸入功能,具體實現(xiàn)過程如下:用戶選擇了中文輸入狀態(tài),點擊軟鍵盤,輸入拼音,通過相應(yīng)的編碼,查找到字庫中與之對應(yīng)的漢字,顯示在編輯框中,用戶選擇所需輸入的漢字,中文輸入完成。
系統(tǒng)中實現(xiàn)中文輸入的接口為:
2.4 輸入窗口界面實現(xiàn)
輸入窗口界面由軟鍵盤、中英文輸入法的切換按鍵框、顯示拼音的輸入框和顯示漢語字符的顯示框組成。用戶選擇中文輸入模式,就可以方便地輸入中文。用戶點擊軟鍵盤上的按鍵,輸入需要的漢字對應(yīng)的拼音,輸入法根據(jù)拼音從字庫中查找出與之對應(yīng)的漢字發(fā)送到當(dāng)前的編輯窗口,用戶再選擇自己所要輸入的漢字,如圖3所示。
圖3 軟鍵盤中文輸入界面
3 總結(jié)
本文詳細(xì)討論了在嵌入式操作系統(tǒng)Linux下基于Qt/E的中文拼音輸入法的設(shè)計關(guān)鍵技術(shù),列出了實現(xiàn)中文拼音輸入的步驟和關(guān)鍵代碼。文中所涉及的中文拼音輸入已在實際工程中實現(xiàn),具有易用、快速、耗資源少的特點,能夠滿足輸入中文的需要。
參考文獻(xiàn)
[1]李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)從入門到精通[M].北京:清華大學(xué)出版社,2007.
[2]陳曉雷,謝文,鄧浩.基于Qt/E的嵌入式Linux中文輸入法的設(shè)計與實現(xiàn)[J].鄭州輕工業(yè)學(xué)院學(xué)報(自然科學(xué)版),2009,24(6):1.
[3]徐英慧.基于Qtopia的嵌入式智能拼音輸入法設(shè)計[J].微計算機信息,2008,24(10):3.
[4]龍中花,廖建明.基于Qtopia的中文輸入法設(shè)計與實現(xiàn)[J].成都信息工程學(xué)院學(xué)報,2004,19(4):17.
〔編輯:白潔〕endprint