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

正文內(nèi)容

畢業(yè)論文嵌入式中文拼音輸入法的設(shè)計(jì)-資料下載頁

2025-06-26 19:32本頁面
  

【正文】 n_h。 h 鍵QPushButton *panelButton_j。 j 鍵QPushButton *panelButton_k。 k 鍵QPushButton *panelButton_l。 l 鍵QPushButton *panelButton_enter。 enter 鍵QPushButton *panelButton_z。 z 鍵QPushButton *panelButton_x。 x 鍵QPushButton *panelButton_c。 c 鍵QPushButton *panelButton_v。 y 鍵QPushButton *panelButton_b。 b 鍵QPushButton *panelButton_n。 n 鍵QPushButton *panelButton_m。 m 鍵QPushButton *panelButton_fanxiegang。 \鍵QPushButton *panelButton_xiegang。 /鍵QPushButton *panelButton_maohao。 :鍵QPushButton *panelButton_dot。 ,鍵QPushButton *panelButton_shift。 shift 鍵QPushButton *panelButton_space。 空格鍵QPushButton *panelButton_abc。 英文切換鍵QPushButton *panelButton_pinyin。 中文切換鍵QPushButton *panelButton_hand。 hand 鍵QPushButton *panelButton_sign。 !鍵QPushButton *panelButton_hide。 隱藏鍵QGridLayout *gridLayout_2。 網(wǎng)格布局QPushButton *panelButton_up。 上翻頁鍵QLineEdit *lineEdit_pinyin。 拼音框QPushButton *panelButton_down。 下翻頁鍵 軟鍵盤窗口界面軟鍵盤如下圖 所示:圖 拼音輸入法界面 輸入法初始界面當(dāng)我們啟動(dòng)拼音輸入法后彈出如下圖 所示界面:圖 拼音輸入初始界面當(dāng)我們將鼠標(biāo)光標(biāo)置于 LineEdit 時(shí)會(huì)彈出一個(gè)軟鍵盤,這時(shí)我們可以按“abc”和“拼音”按鈕選擇中文輸入或是英文輸入,當(dāng)輸入正確的拼音時(shí),會(huì)在軟鍵盤的 LineEdit 中顯示與該拼音匹配的漢字,如果該拼音對(duì)應(yīng)的漢字超出十個(gè),可以按“后”鍵來查詢。按下“shift”鍵后,將切換到大寫字母輸入。按“隱藏”鍵可以隱藏輸入面板。 “關(guān)閉”按鍵可以退出拼音輸入法。9 輸入法字庫設(shè)計(jì) 數(shù)據(jù)庫的設(shè)計(jì)(1)各字段的說明如下:id: 編號(hào);pinyin: 漢字或者詞組對(duì)應(yīng)的拼音;hz: 漢字或者詞組與拼音一一對(duì)應(yīng);pri: 漢字使用頻率。(2)字庫創(chuàng)建:CREATE TABLE zh_CN_gb2312 (id INTEGRPRIMARY KEY, pinyin TEXT, hz TEXT, pri INTEGER)。(3)創(chuàng)建索引:為加快查詢速度,對(duì)相應(yīng)字段建立索引,創(chuàng)建 id 字段上的索引:CREATE INDEX index_zh_CN_egb2312_id ON zh_CN_egb2312(id ASC)。創(chuàng)建 pinyin 字段上的索引:CREATE INDEX index_zh_CN_egb2312_pinyin ON zh_CN_egb2312(pinyin ASC)。創(chuàng)建 pri 字段上的索引,使用降序:CREATE INDEX index_zh_CN_egb2312_pri ON zh_CN_egb2312(pri DESC)。 添加漢字可以使用 SQLite Database Browser 圖形界面添加,如圖 所示:圖 漢字添加10 中文輸入法實(shí)現(xiàn)前面已經(jīng)實(shí)現(xiàn)一個(gè)軟鍵盤的布局了,這一步就是實(shí)現(xiàn)軟鍵盤的核心技術(shù):查找漢字與及英文、漢字的顯示了。大致可以分析為三個(gè)階段。 軟鍵盤內(nèi)部實(shí)現(xiàn)為降低代碼冗余,用 QSignalMapper 類對(duì)按鍵信號(hào)進(jìn)行轉(zhuǎn)換,將不同按鍵發(fā)送者的無參數(shù)信號(hào),轉(zhuǎn)換為帶有參數(shù)的信號(hào),最后在將轉(zhuǎn)換后的信號(hào)連到同一個(gè)槽上,這樣就不用為每個(gè)按鍵都寫一個(gè)按鍵處理槽。為標(biāo)識(shí)各個(gè)按鍵,轉(zhuǎn)換時(shí)帶的參數(shù)就是按鈕的 ButtonValue 的值。connect(uibutton_1,SIGNAL(clicked()),amp。signalMapper, SLOT(map()))。(uibutton_1,uibutton_1property(buttonValue))。connect(amp。signalMapper,SIGNAL(mapped(QString)),this, SLOT(buttonClicked(QString)))。為簡(jiǎn)化按鍵事件發(fā)送,用 Qmap 實(shí)現(xiàn)“鍵值”映射,將 ButtonValue 按鍵標(biāo)識(shí)轉(zhuǎn)換為按鍵對(duì)應(yīng)的鍵值。例如:(0,Qt::Key_0)。即將按鍵的ButtonValue 值:“0”映射為其代表鍵值。其它類似。按 鍵 統(tǒng) 一 槽 函 數(shù) :buttonClicked(QStringbuttonValue) 實(shí)現(xiàn)各按鍵事件的發(fā)送。此處用到 Qt/E 服 務(wù)器端 一個(gè) 重要 的發(fā) 送事件 函數(shù) :QWSServer::sendKeyEvent ( int unicode, intkeycode, Qt::KeyboardModifiers modifiers, boolisPress, bool autoRepeat );該函數(shù)會(huì)檢查當(dāng)前是否安裝了輸入法,如果是,就會(huì)去調(diào)用這個(gè)輸入法的 filter 函數(shù)來過濾鍵盤事件,如果這個(gè)函數(shù)返回值為 true,就不在繼續(xù)分發(fā)該事件,否則按默認(rèn)方式繼續(xù)分發(fā)該事件。Void buttonClicked(QString buttonValue){if(shifted == true) //如果shift 按鍵按下。WSServer::sendKeyEvent(0,(buttonValue),Qt::ShiftModifier,true,false)。elseQWSServer::sendKeyEvent(0,(buttonValue),Qt::NoModifier,true,false)。}至此,軟鍵盤的功能設(shè)計(jì)完成。 事件處理與漢字匹配用戶按下字母 Button 時(shí),字母都被追加到 QLineEdit 中,觸發(fā)數(shù)據(jù)庫的查找,bool openZh_CN_db()。 //打開字體數(shù)據(jù)庫int selectFromZh_CN_db(QString str)。//pinyin 查詢{ QStringList list。 //()。 //存入查到的漢字. QSqlQuery query(db)。 (true)。 //去掉詞組,也可以把詞組單獨(dú)放在一個(gè)表中。// (SELECT hz FROM zh_CN_egb2312 WHERE pinyin like ? AND length(hz)=1 ORDER BY pri DESC)。// (py+%)。 (SELECT hz FROM zh_CN_egb2312 WHERE pinyin = ? ORDER BY pri DESC)。 (py)。// if(hz != amp。amp。 py == )// { //第二次聯(lián)想查詢// (SELECT hz FROM zh_CN_egb2312 WHERE hz like ? ORDER BY pri DESC)。// (hz+%)。// } if(!()) { QMessageBox::warning(0,錯(cuò)誤,字庫查詢失敗!\n+().text())。 return false。 } while(()) { list(0).toString()。 } imclearHZ()。 //清除原先顯示的漢字。 //pre_displayHZ(list)。 //imdisplayHZ(listHZ)。 imdisplayHZ(pre_displayHZ(list))。//顯示漢字。 return 0。} 顯示漢字QString sendHZ(QStringList listHZ,int currentPages,int num)。//從處理過的 List 表中找到漢字,送發(fā)送到輸入文本框中。QString softkeyboard::sendHZ(QStringList listHZ, int currentPages, int num){ QString temp。 QStringList list。 temp = (currentPages1)。 list = ( )。 qDebug()sendHZ temp listendl。 qDebug()imgetCurrentHZnumber()imgetCurrentHZnumber()endl。 if(imgetCurrentHZnumber() !=()) { QMessageBox::warning(0,tr(錯(cuò)),tr(當(dāng)前顯示頁不匹配))。 return false。 } list = (tr(%1).arg(num))。 //用用戶輸入的數(shù)字在List 中查找匹配的漢字。 temp = (0)。 qDebug()sendHZ temptempendl。 if((1).toInt() != num) //每個(gè)漢字或詞組前都有 1 位數(shù)字編號(hào) { QMessageBox::warning(0,tr(List 錯(cuò)),tr(漢字不存在))。 return false。 } else temp = (1)。 //返回除第一個(gè)字符開始后的這個(gè)漢字。 update_Zh_CN_Pri(temp)。 //更新 pri. return temp。 //返回選中的漢字或詞組。} 運(yùn)行效果拼音輸入法運(yùn)行效果如下圖 所示:圖 a 拼音輸入法運(yùn)行效果圖 b 拼音輸入法運(yùn)行效果結(jié) 論 本文基于 QT/E 的嵌入式 Linux 開發(fā)中文拼音輸入法做了許多工作。從嵌入式系統(tǒng)的的發(fā)展歷史到嵌入式操作系統(tǒng),深入了解了嵌入式系統(tǒng)。然后參考了很多嵌入式 Linux 平臺(tái)開發(fā)方面的書籍,了解了嵌入式 Linux 的特點(diǎn)以及嵌入式 Linux 的開發(fā)平臺(tái)和嵌入式 Linux 的發(fā)展前景。接著了解了 GUI 在嵌入式Linux 系統(tǒng)中的地位,并掌握了嵌入式 GUI 的實(shí)現(xiàn)方法—QT/E 的使用,接著完成了 Linux 環(huán)境的搭建,QT/E 環(huán)境的搭建。在這些完成之后才正式進(jìn)入開發(fā)階段,完成了基于 Linux 下軟鍵盤的設(shè)計(jì)以及一個(gè)簡(jiǎn)單的圖形界面。它是基于sqlite 數(shù)據(jù)庫查詢實(shí)現(xiàn)的拼音到漢字的匹配,為了提高查詢速度,為其建立了索引,可以滿足嵌入式系統(tǒng)上用戶對(duì)中文輸入的要求,相比當(dāng)前熱門的基于正則表達(dá)式的字符匹配的嵌入式中文輸入法,它是基于 sqlite 數(shù)據(jù)庫的,匹配速度更快,而且便于漢字與詞組的更新管理,有更好的可擴(kuò)展性。但是本輸入法還存在很多的不足,圖形界面太過簡(jiǎn)單,功能不夠豐富,還有待進(jìn)一步完善。致 謝此次畢業(yè)設(shè)計(jì)的過程中得到了許多人的幫助,每當(dāng)遇到困難的時(shí)候都是指導(dǎo)老師和屈克文學(xué)長(zhǎng)給了我巨大的信心,同學(xué)也給我精神上很大的支持,正是有了這一切的一切才讓我能堅(jiān)持下來并且一步一步的完成畢業(yè)論文設(shè)計(jì)。同時(shí)我對(duì)“堅(jiān)持就是勝利”這個(gè)簡(jiǎn)單的道理有了更加
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1