# 【Qt編程】基于Qt的詞典開發系列--本地詞典的設計
我設計的詞典不僅可以實現在線查單詞,而且一個重大特色就是具有**豐富的本地詞典庫**:我默認加入了八個類型的詞典,如下所示:

由于是本人是通信專業,因此加入了華為通信詞典、電子工程詞典,又由于我喜愛編程,也加入了c語言基本函數詞典。下面介紹如何設計本地詞典:
## 詞典類型的選擇
當然是txt格式的最好了,因為我們可以用程序直接進行讀取。可是網上詞典一般都是用mdx格式、ld2格式的,我無法用Qt來直接讀取。最終,經過不斷摸索,網上查找,發現我們可以將mdx格式的詞典通過軟件轉化為txt格式的!
## mdx詞典的下載
如何獲取mdx格式的詞典呢?直接百度 mdx 詞典就可以發現如下搜索結果:

從中選擇下載你想要的詞典,這里我以http://bbs.meizu.cn/thread-3299845-1-1.html中的第一個mdx詞典“三合一漢語大辭典”作為例子。
## mdx詞典的查看
由于是mdx格式的,你用記事本打開就會顯示亂碼。那么怎么查看你下載的詞典的內容呢?這時我們可以利用一個可以解析mdx格式的**軟件MDict([點擊下載](http://download.csdn.net/detail/tengweitw/8588165))**來打開該mdx詞典。
舉例說明:
假設我下載了一個“三合一漢語大辭典.mdx”,我們首先打開MDict軟件來查看該詞典的內容。首先選擇“詞庫”--“詞庫管理”--“加入詞典”,從而加入我們下載的詞典文件,然后點擊“詞庫”,從下拉列表中選擇我們剛才加入的“三合一漢語大辭典”。然后單擊左側欄,就會在右側欄中顯示對應的內容。具體操作圖解如下:

## mdx詞典的轉換
將mdx格式的詞典轉化為txt格式需要利用工具MDx詞典轉化工具([點擊下載](http://download.csdn.net/detail/tengweitw/8588171)),只需要按照下圖即可轉化為txt文件:

用記事本打開該txt文件我們就可以發現下圖類似的語言格式:


我們以圖中第二行為例,aadb為我們要查的單詞(注意:我們這里的詞典是成語詞典,即查找aadb四個拼音首字母所組成的成語),而后面中的即為我們要找的成語,學過網頁設計的人應該都知道嗷嗷待哺的意思,這其實是html語言,即將“嗷嗷待哺”變為藍色字體,正如我們在MDict所看到的一樣。而恰好Qt可以識別html語言,因此即使像我這種沒有學過html語言的人也不用費心思去了解。
## txt詞典的處理
前面我們基本上完成了詞典的制作,但是我為了簡便起見,我將詞典中要查的詞和內容分開保存。例如,我將上面的txt文件改名為Chinese.txt(方便編程使用),將其拆分如下名為ChineseA和ChineseB文件:

這樣做的好處是,每當我在搜索窗口輸入我想要查詢的內容時(比如輸入aadb),我就只需要打開ChineseA文件,在這里尋找是否存在該詞,而不需要打開整個詞典(詞+內容),這樣查找速度會快一點,因為很明顯ChineseA的文件的大小要明顯小于Chinese文件大小,**還有一點好處,會在后面的系列文章中提到**。如下所示:

關于如何將上面的文件拆分成兩個文件,我想應該很簡單,我就不在這寫出具體的實現過程,只說說思路:首先讀取整個文件,每次讀取一行,在每一行中,遇到第一個空格就提取出來放入ChineseA.txt中,該行剩余部分放入ChineseB.txt。**值得注意的是**,兩個子文件中,對應的內容應該在相同行!
好吧,也許說了這么多,你也嫌太復雜,懶得自己操作,覺得我的本地詞典庫足夠了,那好吧,你可以自己下載我已經處理好了的txt格式的詞典文件。鏈接為:[http://download.csdn.net/detail/tengweitw/8588209](http://download.csdn.net/detail/tengweitw/8588209)
- 前言
- <一>--詞典框架設計及成品展示
- <二>--本地詞典的設計
- <三>--開始菜單的設計
- <四>--無邊框窗口的縮放與拖動
- <五>--無邊框窗口的拖動
- <六>--界面美化設計
- <七>--調用網絡API
- <八>--用戶登錄及API調用的實現
- <九>--JSON數據解析
- <十>--國際音標的顯示
- <十一>系統托盤的顯示
- <十二>調用講述人
- <十三>音頻播放
- <十四>自動補全功能
- <十五>html特殊字符及正則表達式
- 后序