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

正文內(nèi)容

畢業(yè)論文嵌入式中文拼音輸入法的設(shè)計-閱讀頁

2025-07-11 19:32本頁面
  

【正文】 成以下任務(wù)。開發(fā)者可以選取所需要的一些特性,剪裁不需要的特性。同 QT 一樣,QtE 也是用 C++寫的,雖然這樣會增加系統(tǒng)資源的消耗,但是卻為開發(fā)者提供了清晰的程序框架,是開發(fā)者迅速上手,并且可以方便地編寫自定義的用戶界面程序。所以,當(dāng)需要開發(fā) Linux 或 MS Windows 環(huán)境下的 GUI 程序時,QtE 是最佳的選擇。QT/開發(fā)環(huán)境的構(gòu)建主要包括兩方面,一個是宿主機端的QT/E 開發(fā)環(huán)境,另一個是目標(biāo)板子上的 QT/E 運行環(huán)境。QT Creator 包括項目生成向?qū)?、高級的 C++代碼編輯器、瀏覽文件及類的工具、集成了 Qt Designer、圖形化的 CDB 調(diào)試前端、集成 qmake 構(gòu)建工具等,使用非常方便。QT Creator 運行效果如圖 所示: 圖 ,QtCreator 編譯 X86 平臺 QT/E 庫之所以編譯 X86 平臺庫,是因為可以在強大的 PC 機上模擬 QT/E 程序,從而加快開發(fā)進程,這也是 QT/E 通用開發(fā)模式。X86 版本配置如下:./configure prefix /home/ debug shared fast qtsqlsqlite noqt3support noxmlpatterns nolargefile nommx no3dnow nosse nosse2 qtzlib qtgif qtlibtiff qtlibpng qtlibmng qtlibjpeg make libs nomake tools nomake examples nomake docs nomake demo nomultimedia noaudiobackend nophonon nophononbackend nosvg nowebkit nojavascriptjit noscript noscripttools nonis nocups noiconv nodbus noopenssl xplatform qws/linuxx86g++ littleendian embedded x86 qtfreetype –depths 16,18,24,32 qtgfxqvfb nogfxtransformed nogfxmultiscreen nogfxvnc qtmouseqvfb noglib –qvfb 配置完成以后編譯安裝: gmake 。 cd tools/qvfb make 編譯 ARM 平臺 QT/E 庫 由于 Qt 包含許多很多特性和功能,要對 Qt/E 進行適當(dāng)?shù)牟眉舨蝗簧傻膸鞎艽?。在配置選項中去掉了用用程序的特性,如:多媒體。QtCreator 的配置如圖 所示。 2.單擊 Qmake Location:右側(cè)“Browse…”按鈕,在彈出的“Select QMakeExecutable”窗口中找到對應(yīng)版本的 bin 目錄中的 qmake 工具,單擊打開,回到 Qt Versions 界面。4.同理完成 arm 版本的添加。在編譯時,只需在 QtCreator“Build”菜單中選定編譯平臺,就可以編譯相應(yīng)平臺的應(yīng)用程序了。圖 ,QtCreator 編譯 ARM 平臺的程序 下載 ARM 平臺庫至目標(biāo)板將編譯好的 ARM 平臺庫復(fù)制到目標(biāo)板上。LD_LIBRARY_PATH=$ LD_LIBRARY_PATH:/usr/local/qte/libexport LD_LIBRARY_PATH配置了庫的搜索路徑后,還要配置一些 Qt/E 專用的環(huán)境變量,如觸摸屏校正所需的環(huán)境變量、Qt/E 應(yīng)用程序的路徑、輸入設(shè)備等信息。7 中文輸入法的原理 拼音輸入法處理流程圖本課題設(shè)計對每個 Button 定義了相應(yīng)的槽函數(shù)on_pushButtonname_clicked(),當(dāng)相應(yīng)的 Button 被按下時,則產(chǎn)生一個信號發(fā)送給相應(yīng)的槽函數(shù),槽將獲得 QLineEdit 的字符串,然后利用該字符串查找數(shù)據(jù)庫,返回對應(yīng)的漢字,或者中文短語,并把最終用戶的選擇發(fā)送到當(dāng)前編輯窗口。connect(Button,SIGNAL(clicked()),this,SLOT(accept()))。當(dāng)用戶選擇了漢字對應(yīng)的序號時該漢字被寫入到 QLineEdit 顯示,至此完成中文輸入。Qt 的發(fā)展相當(dāng)速度,應(yīng)用程序在運行時都需要一個服務(wù)端程序,或者本身就作為一個服務(wù)端程序運行,而且任何一個 Qt/E 應(yīng)用程序都能夠作為一個服務(wù)端程序運行,當(dāng)系統(tǒng)中有多個 Qt/E 應(yīng)用程序時,后運行的程序就鏈接到已經(jīng)存在的服務(wù)端程序上,自己作為客服端(Client)。 所以在 Qt/E 上運行的輸入法,必須將其放在服務(wù)器端運行,作為服務(wù)端的一部份才能正確接收到按鍵事件,進而處理各個事件。輸入法會在應(yīng)用程序之前處理了按鍵事件(如根據(jù)用戶所按按鍵在字庫中檢索匹配的漢字) ,并根據(jù)用戶選擇發(fā)送相應(yīng)漢字到應(yīng)用程序,通過對按鍵事件的“截流”及過濾,就實現(xiàn)了應(yīng)用程序的中文輸入。軟鍵盤布局的設(shè)計在 QT設(shè)計師 Qt Designer 中完成,在該設(shè)計中鍵盤大小固定:key_boardresize(419, 142)。 key_boardsetMaximumSize(QSize(420, 142))。如按鍵‘0’的 ButtonValue 為“0” ,字母按鍵的 ButtonValue 等于按鍵所代表的字母,刪除按鍵‘backspace’的 ButtonValue 設(shè)為“backspac” ,其它類似。 窗口布局QPushButton *panelButton_1。 數(shù)字鍵 2QPushButton *panelButton_3。 數(shù)字鍵 4QPushButton *panelButton_5。 數(shù)字鍵 6QPushButton *panelButton_7。 數(shù)字鍵 8QPushButton *panelButton_9。 數(shù)字鍵 0QPushButton *panelButton_backspace。 q 鍵QPushButton *panelButton_w。 e 鍵QPushButton *panelButton_r。 t 鍵QPushButton *panelButton_y。 u 鍵QPushButton *panelButton_i。 o 鍵QPushButton *panelButton_p。 鍵QPushButton *panelButton_a。 s 鍵QPushButton *panelButton_d。 f 鍵QPushButton *panelButton_g。 h 鍵QPushButton *panelButton_j。 k 鍵QPushButton *panelButton_l。 enter 鍵QPushButton *panelButton_z。 x 鍵QPushButton *panelButton_c。 y 鍵QPushButton *panelButton_b。 n 鍵QPushButton *panelButton_m。 \鍵QPushButton *panelButton_xiegang。 :鍵QPushButton *panelButton_dot。 shift 鍵QPushButton *panelButton_space。 英文切換鍵QPushButton *panelButton_pinyin。 hand 鍵QPushButton *panelButton_sign。 隱藏鍵QGridLayout *gridLayout_2。 上翻頁鍵QLineEdit *lineEdit_pinyin。 下翻頁鍵 軟鍵盤窗口界面軟鍵盤如下圖 所示:圖 拼音輸入法界面 輸入法初始界面當(dāng)我們啟動拼音輸入法后彈出如下圖 所示界面:圖 拼音輸入初始界面當(dāng)我們將鼠標(biāo)光標(biāo)置于 LineEdit 時會彈出一個軟鍵盤,這時我們可以按“abc”和“拼音”按鈕選擇中文輸入或是英文輸入,當(dāng)輸入正確的拼音時,會在軟鍵盤的 LineEdit 中顯示與該拼音匹配的漢字,如果該拼音對應(yīng)的漢字超出十個,可以按“后”鍵來查詢。按“隱藏”鍵可以隱藏輸入面板。9 輸入法字庫設(shè)計 數(shù)據(jù)庫的設(shè)計(1)各字段的說明如下:id: 編號;pinyin: 漢字或者詞組對應(yīng)的拼音;hz: 漢字或者詞組與拼音一一對應(yīng);pri: 漢字使用頻率。(3)創(chuàng)建索引:為加快查詢速度,對相應(yīng)字段建立索引,創(chuàng)建 id 字段上的索引:CREATE INDEX index_zh_CN_egb2312_id ON zh_CN_egb2312(id ASC)。創(chuàng)建 pri 字段上的索引,使用降序:CREATE INDEX index_zh_CN_egb2312_pri ON zh_CN_egb2312(pri DESC)。大致可以分析為三個階段。為標(biāo)識各個按鍵,轉(zhuǎn)換時帶的參數(shù)就是按鈕的 ButtonValue 的值。signalMapper, SLOT(map()))。connect(amp。為簡化按鍵事件發(fā)送,用 Qmap 實現(xiàn)“鍵值”映射,將 ButtonValue 按鍵標(biāo)識轉(zhuǎn)換為按鍵對應(yīng)的鍵值。即將按鍵的ButtonValue 值:“0”映射為其代表鍵值。按 鍵 統(tǒng) 一 槽 函 數(shù) :buttonClicked(QStringbuttonValue) 實現(xiàn)各按鍵事件的發(fā)送。Void buttonClicked(QString buttonValue){if(shifted == true) //如果shift 按鍵按下。elseQWSServer::sendKeyEvent(0,(buttonValue),Qt::NoModifier,true,false)。 事件處理與漢字匹配用戶按下字母 Button 時,字母都被追加到 QLineEdit 中,觸發(fā)數(shù)據(jù)庫的查找,bool openZh_CN_db()。//pinyin 查詢{ QStringList list。 //存入查到的漢字. QSqlQuery query(db)。 //去掉詞組,也可以把詞組單獨放在一個表中。// (py+%)。 (py)。amp。// (hz+%)。 return false。 } imclearHZ()。 //pre_displayHZ(list)。 imdisplayHZ(pre_displayHZ(list))。 return 0。//從處理過的 List 表中找到漢字,送發(fā)送到輸入文本框中。 QStringList list。 list = ( )。 qDebug()imgetCurrentHZnumber()imgetCurrentHZnumber()endl。 return false。 //用用戶輸入的數(shù)字在List 中查找匹配的漢字。 qDebug()sendHZ temptempendl。 return false。 //返回除第一個字符開始后的這個漢字。 //更新 pri. return temp。} 運行效果拼音輸入法運行效果如下圖 所示:圖 a 拼音輸入法運行效果圖 b 拼音輸入法運行效果結(jié) 論 本文基于 QT/E 的嵌入式 Linux 開發(fā)中文拼音輸入法做了許多工作。然后參考了很多嵌入式 Linux 平臺開發(fā)方面的書籍,了解了嵌入式 Linux 的特點以及嵌入式 Linux 的開發(fā)平臺和嵌入式 Linux 的發(fā)展前景。在這些完成之后才正式進入開發(fā)階段,完成了基于 Linux 下軟鍵盤的設(shè)計以及一個簡單的圖形界面。但是本輸入法還存在很多的不足,圖形界面太過簡單,功能不夠豐富,還有待進一步完善。同時我對“堅持就是勝利”這個簡單的道理有
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1