freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于qte的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-07-21 02:37 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 for x11 Linux:底層的顯示技術(shù)構(gòu)建在 Window 系統(tǒng)之上,完全依賴(lài)于Windows 系統(tǒng),在下層調(diào)用了 X Lib 的系統(tǒng)方法來(lái)顯示界面上的圖像。Qt for embedd linux:沒(méi)有構(gòu)建在 Window 系統(tǒng)之上,而是構(gòu)建在了 Linux 系統(tǒng)下的 framebuffer 之上,把在人機(jī) GUI 上需要展示的元素寫(xiě)入 framebuffer。因?yàn)樵谇度胧皆O(shè)備上省略了 X 系統(tǒng),大大節(jié)省了許多的不必要的系統(tǒng)開(kāi)銷(xiāo),需要在 GUI 展示的圖像,直接寫(xiě)入了 framebuffer,節(jié)省了系統(tǒng)資源,大大加快了顯示速度。這是 Qt/E的最大優(yōu)勢(shì)。兩者的體系結(jié)構(gòu)差別,如圖 21 所示:圖 21 Qt/E 和 Qt/X11 體系架構(gòu)對(duì)比因此,Qt/E 具有服務(wù)端層,這一層主要負(fù)責(zé)監(jiān)聽(tīng)系統(tǒng)的事件,如:主要是keyboard 和 mouse 事件,移動(dòng)終端輸出事件,管理域,管理 top 窗口,管理光標(biāo)和管理屏幕保護(hù)程序等等諸多功能。系統(tǒng)被觸發(fā)產(chǎn)生的 keyboard 和 mouse 事件,首先就傳給服務(wù)端 層,然后服務(wù)端再根據(jù)具體的實(shí)際情況把以上事件分派給,相對(duì)應(yīng)的應(yīng)用程序和軟件。 Vim 簡(jiǎn)介Vim 是 Linux 系統(tǒng)下最常用的文本編輯器,Vim 是一個(gè)類(lèi)似于 Vi 的文本編輯器,Vim 是 Vi 的升級(jí)版,Vim 在 Vi 的基礎(chǔ)上增加了很多新的特性,Vim 普遍被推崇為類(lèi)Vi 編輯器中最好的一個(gè)。80 年代末,出現(xiàn)了 Vim 的 版本。最初的目標(biāo)只是完全復(fù)制 vi 的功能,那個(gè)時(shí)候的 Vim 是 Vi IMitation(模擬)的簡(jiǎn)稱(chēng)。1991 年 Vim 基于 Qt/E 的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn) 5 版被 Fred Fish Disk 591 這個(gè) Amiga 用的免費(fèi)軟體集所收錄。1992 年 版本的 Vim 被移植到了 UNIX 和 MSDOS 上。從此,Vim 的全名就正式變成 Vi Improved。 Vim 的發(fā)展很迅速,在這之后,Vim 加入了不計(jì)其數(shù)的新功能。作為第一個(gè)里程碑的是 1994 年的 版本加入了多視窗編輯模式(分割視窗) 。從那之后,同一屏幕可以顯示的 Vim 編輯文件數(shù)可以不止一個(gè)了。1996 年發(fā)布的 Vim 是第一個(gè)利用圖型接口(GUI)的版本。1998 年 版本的 Vim 加入了 highlight(語(yǔ)法高亮)功能。2022 年的 Vim 版本加入了代碼折疊、插件、多國(guó)語(yǔ)言支持、垂直分割視窗等功能。2022 年 5 月發(fā)布的 Vim 版更加入了拼字檢查、上下文相關(guān)補(bǔ)完,標(biāo)簽頁(yè)編輯等新功能?,F(xiàn)在最新的版本是 2022 年 8 月發(fā)布的 Vim ,該版本合并了 Vim 以來(lái)的所有修正補(bǔ)丁,并且加入了腳本的浮點(diǎn)數(shù)支持。基于 Qt/E 的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn) 6 3 系統(tǒng)需求分析 需求分析的目的需求分析就是要明確需求方和開(kāi)發(fā)放需要開(kāi)發(fā)一個(gè)什么樣的產(chǎn)品才能滿(mǎn)足客戶(hù)的需求,即明確“需要干什么” ,不需要知道“怎么干” 。本系統(tǒng)要實(shí)現(xiàn)的是一個(gè)用于嵌入式 GUI 的中文拼音輸入法,因?yàn)橐m用于嵌入式平臺(tái)下,因此該輸入法應(yīng)占用較少的系統(tǒng)資源,輸入法界面要美觀,輸入要方便,中英輸入法切換要方便。 需求分析的地位與作用需求分析是開(kāi)發(fā)軟件是否成功的決定因素。軟件項(xiàng)目中大多數(shù)的問(wèn)題都是因?yàn)樾枨蠓治霾划?dāng)或者是需求分析考慮不周全而導(dǎo)致的。在軟件需求分析的過(guò)程中,導(dǎo)致問(wèn)題的出現(xiàn)主要包括以下方面,包括用戶(hù)的需求不明確,需要實(shí)現(xiàn)的功能不明確, 、需求的文檔不是很完善等,都可能造成產(chǎn)品開(kāi)發(fā)的過(guò)程中的出現(xiàn)很多困難。軟件需求分析,雖然是軟件開(kāi)發(fā)整個(gè)周期的開(kāi)始階段,但也是軟件開(kāi)發(fā)整個(gè)周期中最為關(guān)鍵的一個(gè)階段,關(guān)系到項(xiàng)目開(kāi)發(fā)成敗的一個(gè)關(guān)鍵步驟。 系統(tǒng)應(yīng)該滿(mǎn)足的功能通過(guò)調(diào)查研究顯示,一個(gè)良好的輸入法不僅僅要使用戶(hù)輸入起來(lái)方便,更需要安全、可靠、高效的系統(tǒng)支持。本輸入法的要求是:(1)要求具有良好的界面。(2)占用系統(tǒng)資源少。(3)輸入方便。 本系統(tǒng)需要實(shí)現(xiàn)的功能是:中文,大小寫(xiě)英文,常用標(biāo)點(diǎn)符號(hào)的輸入,具有軟鍵盤(pán),并支持觸摸屏,具體功能模塊如圖 31 所示:基于 Qt/E 的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn) 7 圖 31 系統(tǒng)功能模塊圖基于 Qt/E 的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn) 8 4 系統(tǒng)設(shè)計(jì) 搭建 Qt/E 開(kāi)發(fā)環(huán)境在進(jìn)行開(kāi)發(fā)之前,首先決定的第一個(gè)問(wèn)題就是,該使用什么開(kāi)發(fā)環(huán)境來(lái)編寫(xiě)該系統(tǒng)? 目前常見(jiàn)的嵌入式 GUI,主要有 Qt,GTK+幾種工具,Qt 的移植性更強(qiáng),基于此,本系統(tǒng)采用 Qt 來(lái)開(kāi)發(fā)。Qt 是諾基亞開(kāi)發(fā)的一個(gè)跨平臺(tái)性很強(qiáng)的基于 C++圖形用戶(hù) GUI 開(kāi)發(fā)庫(kù)。開(kāi)發(fā)語(yǔ)言為 C++。有很多的有優(yōu)點(diǎn),如:具有優(yōu)良的跨平臺(tái)特性、面向?qū)ο?、豐富的 API、大量的開(kāi)發(fā)文檔。移植步驟:(1)準(zhǔn)備好如下源碼包:Qt/E 源碼包:Qtx11 源碼包:觸摸屏源碼包:tslib1[1].(2)編譯安裝 編譯 應(yīng)設(shè)置好參數(shù),具體參數(shù)如圖 41 所示:圖 41 編譯 tslib 參數(shù)(3)編譯安裝 安裝 時(shí),最關(guān)鍵的步驟是設(shè)置 的環(huán)境變量環(huán)境變量具體如圖 42 所示: 圖 42 環(huán)境變量(4)編譯安裝 Qt/基于 Qt/E 的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn) 9 編譯安裝 Qt/ 時(shí),需設(shè)置好編譯參數(shù),具體參數(shù)如圖 43 所示:圖 43 編譯 Qt/ 參數(shù) “I/home/mytslib/include L/home/ mytslib/lib ”指明剛才編譯出來(lái)觸摸屏的庫(kù)文件及頭文件存放路徑。 “qtmousetslib”表示將使用觸摸屏。編譯完成后,安裝時(shí),最關(guān)鍵的步驟還是設(shè)置環(huán)境變量具體的環(huán)境變量如圖 44 所示:圖 44 Qt/ 環(huán)境變量(5)移植相關(guān)庫(kù)文件至開(kāi)發(fā)板首先準(zhǔn)備一個(gè)文件系統(tǒng),根據(jù)友善提供的文檔制作了一個(gè)文件系統(tǒng),路徑為/opt/rootfs, 其中 rootfs 就是根文件系統(tǒng)。把編譯生成的庫(kù)文件及配置文件復(fù)制至開(kāi)發(fā)板上,用 NFS 方式掛載文件系統(tǒng),把目標(biāo)庫(kù)文件等下載到開(kāi)發(fā)板。需移植到開(kāi)發(fā)板的文件如圖 45 所示:基于 Qt/E 的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn) 10 圖 45 需移植到開(kāi)發(fā)板的文件移植如上文件到開(kāi)發(fā)板后,編輯開(kāi)發(fā)板/etc/profile,用來(lái)在開(kāi)發(fā)板上設(shè)置環(huán)境變量,具體的環(huán)境變量如圖 46 所示:圖 46 移植 Qt/E 應(yīng)設(shè)置的環(huán)境變量設(shè)置觸摸屏的配置文件 把 module_raw collie 前面的 “?!碧?hào)去掉,然后把該行移至行首,最后配置文件如圖 47 所示:基于 Qt/E 的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn) 11 圖 47 觸摸屏配置文件(6)驗(yàn)證 tslib 是否移植成功.在開(kāi)發(fā)板終端下執(zhí)行觸摸較正程序:在終端執(zhí)行 ./ts_calibrate 運(yùn)行該程序主要是校正觸摸屏,運(yùn)行 ts_calibrate 后,屏幕將出現(xiàn)五點(diǎn)校正畫(huà)面,依次點(diǎn)擊五點(diǎn)后,將生成觸摸屏校正數(shù)據(jù)文件/etc/pointercal .在開(kāi)發(fā)板終端下執(zhí)行觸摸屏拖曳測(cè)試程序:在終端執(zhí)行./ts_test 運(yùn)行后屏幕出現(xiàn) drag,draw 依次選擇后進(jìn)行測(cè)試,同時(shí)終端下出現(xiàn)拖曳后的取點(diǎn)數(shù)據(jù)(7)驗(yàn)證 是否移植成功在宿主機(jī)上編譯好 Qt 的例子程序,下載到開(kāi)發(fā)板下并執(zhí)行:./application –qws –font unifont如能正常顯示, 移植成功。 交叉編譯環(huán)境的搭建(1)配置 mini在宿主機(jī) Redhat Linux 下新建終端,在終端命令提示符后輸入 mini s,回車(chē),然后按照提示設(shè)置波特率 115200,8 位數(shù)據(jù),1 位停止位,無(wú)控制流,保存退出。(2)TFTP 服務(wù)的配置在終端中運(yùn)行 setupsystem servicetftp 增加 TFTP 服務(wù),并去掉 ipchains 和iptables 兩項(xiàng),然后在 Firewall configuration,選中 no firewall,保存退出,執(zhí)行service xid restart 啟動(dòng) TFTP 服務(wù)。(3)NFS 服務(wù)器的配置在終端中運(yùn)行 setupsystem serviceNFS,增加 NFS 服務(wù),然后編輯文件exports,添加與目標(biāo)機(jī)共享的目錄,并設(shè)置目標(biāo)機(jī)對(duì)目錄的訪(fǎng)問(wèn)權(quán)限,重新啟動(dòng) NFS服務(wù)。(4)Linux 內(nèi)核移植通過(guò)并口,宿主機(jī)向目標(biāo)開(kāi)發(fā)板的 Flash 燒寫(xiě)引導(dǎo)程序 vivi,燒寫(xiě)完畢后通過(guò)TFTP 服務(wù)把經(jīng)過(guò)裁剪的 Linux 內(nèi)核鏡像文件以及根文件系統(tǒng)下載到目標(biāo)板的 RAM中,然后由 dnw 完成內(nèi)核及根文件系統(tǒng)從內(nèi)存到 Flash 的燒寫(xiě)。最后需要在宿主機(jī)安裝主編譯器 Armlinuxgcc ,用來(lái)交叉編譯應(yīng)用程序 。基于 Qt/E 的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn) 12 輸入法設(shè)計(jì) 輸入法的原理Qt/E 是 C/S 結(jié)構(gòu),在服務(wù)端負(fù)責(zé)監(jiān)聽(tīng)系統(tǒng)消息,比如:keyboard 和 mouse 消息,而中文輸入法是一個(gè)全局性的模塊,所以在 Qt/E 中,把中文輸入法的設(shè)計(jì)放在了服務(wù)層。輸入法是屬于服務(wù)層的一部分。QWSInputMethod 是 Qt/E 的一個(gè)類(lèi),其是中文輸入法的基類(lèi),在QWSInputMethod 這個(gè)基類(lèi)中定義了一些函數(shù)用以支持輸入法的程序的設(shè)計(jì),本文從此基類(lèi)中繼承出了一個(gè)中文輸入法的類(lèi),在該類(lèi)中處理 keyboard 和 mouse 事件,把接收到的 keyboard 事件按照用戶(hù)所需要輸入的漢字的拼音,從字庫(kù)中查找出之對(duì)應(yīng)的漢字,詞組,或者是一個(gè)漢語(yǔ)短語(yǔ),發(fā)送給當(dāng)前的顯示窗口,或者把用戶(hù)最后選擇的漢字、短語(yǔ)或詞組發(fā)送到當(dāng)前的顯示窗口。需定義一個(gè)輸入法窗口來(lái)顯示用戶(hù)當(dāng)前的輸入。字符,漢字,英文的輸入一般分為三大步驟:(1)開(kāi)始準(zhǔn)備輸入當(dāng)用戶(hù)在軟鍵盤(pán)上按下第一個(gè) keyboard 按鍵時(shí),輸入法會(huì)自動(dòng)創(chuàng)建出輸入法的上下文,輸入法上下文包含 keyboard 輸入字符。(2)選擇編輯當(dāng)有任何一個(gè)新的 keyboard 按鍵被按下的時(shí)候,輸入法就會(huì)主動(dòng)嘗試著去創(chuàng)建與 keyboard 輸入相對(duì)應(yīng)的中文字符,英文字符和數(shù)字等等,此時(shí),激活了中文輸入法的上下文,用戶(hù)可以自由的在中文輸入法的上下文中前后移動(dòng)光標(biāo)。(3)輸入完成當(dāng)用戶(hù)認(rèn)為輸入已經(jīng)完成的時(shí),用戶(hù)會(huì)選擇以某種方式來(lái)選擇最終的字符串,通常是使用 keyboard 按鍵,或者 mouse 點(diǎn)擊,用戶(hù)最終所選擇的字符串會(huì)被發(fā)送到當(dāng)前的編輯窗口。 輸入法流程圖本輸入法的流程是:用戶(hù)輸入,軟鍵盤(pán)得到響應(yīng),系統(tǒng)判斷是否處于中文輸入狀態(tài),是:進(jìn)入中文輸入流程,否:進(jìn)入英文輸入流程,具體流程圖如圖 48 所示:基于 Qt/E 的嵌入式中文輸入法的設(shè)計(jì)與實(shí)現(xiàn) 13 圖 48 輸入法流程圖 關(guān)鍵模塊介紹(1)中文輸入模塊中文輸入模塊實(shí)現(xiàn)了中文輸入功能,用戶(hù)選擇了中文輸入狀態(tài),點(diǎn)擊軟鍵盤(pán),輸入拼音,通過(guò)相應(yīng)的編碼,查找到字
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1