# 【Qt編程】基于Qt的詞典開發系列--詞典框架設計及成品展示
去年暑假的時候,作為學習Qt的實戰,我寫了一個名為《我愛查詞典》的詞典軟件。后來由于導師項目及上課等原因,時間不足,所以該軟件的部分功能欠缺,性能有待改善。這學期重新拿出來看時,又有很多東西都不熟悉了。恰逢這學期課比較少,于是乎想寫寫關于這個軟件制作的一系列文章,對日后重拾該軟件時能夠較快入手。當然,也非常樂意讀者們在該軟件的基礎上添加一些功能,源代碼會在該系列文章寫完之后公布。可運行的詞典軟件的下載地址:[http://download.csdn.net/detail/tengweitw/8548767](http://download.csdn.net/detail/tengweitw/8548767)
**下面先給出軟件的架構,文章后面會給出各個功能展示圖。**
## 詞典的功能模塊
? ??? ??
1、無邊框窗口的拖動、放大縮小
2、系統托盤的顯示
3、登錄管理
4、用戶賬號顯示
5、置頂、換膚、最小化、關閉按鈕
6、調用本地瀏覽器查詞
7、查詞歷史前進后退按鈕
8、查詞框、搜索按鈕
9、三種查詞:網絡查詞、本地查詞、網頁查詞
10、單詞信息顯示窗口
11、主菜單:置頂、字體大小選擇、匹配模式選擇、注銷、關于、退出
12、單詞本
13、本地詞典的選擇模塊
14、網上學堂
15、網絡連通狀態標志
16、本地詞典使用狀態

## 工程目錄文件


**下面給出各個文件的大概功能說明:**
1、basicwindow.h、basicwindow.cpp和basicwindow.ui文件定義了Basicwindow類,主要實現的是邊框窗口的拖動和縮放,軟件中其他的窗口設計大都繼承該類
2、completelineedit.h和completelineedit.cpp文件定義了CompleteLineEdit類,該類主要是改進QLineEdit類,可以有下拉列表的顯示,軟件中功能8就用到該類。
3、libmanager.h、libmanager.cpp和libmanager.ui文件用于生成本地詞典的選擇界面。
4、localdict.h和localdict.cpp文件定義了LocalDict類,用于讀取本地的詞典庫。
5、logindialog.h、logindialog.cpp和logindialog.ui定義了LoginDialog類,用于管理用戶帳號的登錄。
6、network.h和network.cpp文件定義了netWork類,用于根據扇貝網的公開API,使用帳號登錄扇貝網,進行網絡查詞。
7、qmenubutton.h和qmenubutton.cpp定義了QMenuButton類,功能11繼承了該類,使之可以出現下拉菜單。
8、searchwindow.h、searchwindow.cpp和searchwindow.ui定義了SearchWindow類,用于軟件主界面的顯示,這個是軟件的核心部分。
9、word.h和word.cpp文件定義了Word類,主要用于儲存從網絡查詞獲得的單詞內容。
10、wordbook.h、wordbook.cpp和wordbook.ui文件定義了WordBook類,用于管理單詞本,此部分功能尚未實現。
11、wordmodify.h、wordmodify.cpp和wordmodify.ui文件定義了WordModify,用于單詞本中單詞的修改功能。
## 部分功能的展示圖
**1、主界面**

**2、網絡查詞**

**3、本地查詞**


**4、網絡搜索**

**5、換膚功能**

**6、搜索模式:句首匹配、句中匹配**


**7、主菜單**

**8、托盤顯示**

**9、其他一些截圖:**








****
****
****
****
- 前言
- <一>--詞典框架設計及成品展示
- <二>--本地詞典的設計
- <三>--開始菜單的設計
- <四>--無邊框窗口的縮放與拖動
- <五>--無邊框窗口的拖動
- <六>--界面美化設計
- <七>--調用網絡API
- <八>--用戶登錄及API調用的實現
- <九>--JSON數據解析
- <十>--國際音標的顯示
- <十一>系統托盤的顯示
- <十二>調用講述人
- <十三>音頻播放
- <十四>自動補全功能
- <十五>html特殊字符及正則表達式
- 后序