# 【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、本地词典使用状态
![](https://box.kancloud.cn/2016-01-15_5698c1c294fa7.jpg)
## 工程目录文件
![](https://box.kancloud.cn/2016-01-15_5698c1c2b77c6.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c2cf3a7.jpg)
**下面给出各个文件的大概功能说明:**
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、主界面**
![](https://box.kancloud.cn/2016-01-15_5698c1c2daaed.jpg)
**2、网络查词**
![](https://box.kancloud.cn/2016-01-15_5698c1c2ef432.jpg)
**3、本地查词**
![](https://box.kancloud.cn/2016-01-15_5698c1c30faa9.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c324591.jpg)
**4、网络搜索**
![](https://box.kancloud.cn/2016-01-15_5698c1c341333.jpg)
**5、换肤功能**
![](https://box.kancloud.cn/2016-01-15_5698c1c355b65.jpg)
**6、搜索模式:句首匹配、句中匹配**
![](https://box.kancloud.cn/2016-01-15_5698c1c36e518.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c36e518.jpg)
**7、主菜单**
![](https://box.kancloud.cn/2016-01-15_5698c1c38fb03.jpg)
**8、托盘显示**
![](https://box.kancloud.cn/2016-01-15_5698c1c3aadae.jpg)
**9、其他一些截图:**
![](https://box.kancloud.cn/2016-01-15_5698c1c3b87cf.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c3cac6f.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c3e1a6b.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c3f0d9c.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c41030f.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c42d06f.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c440f50.jpg)
![](https://box.kancloud.cn/2016-01-15_5698c1c454271.jpg)
****
****
****
****
- 前言
- <一>--词典框架设计及成品展示
- <二>--本地词典的设计
- <三>--开始菜单的设计
- <四>--无边框窗口的缩放与拖动
- <五>--无边框窗口的拖动
- <六>--界面美化设计
- <七>--调用网络API
- <八>--用户登录及API调用的实现
- <九>--JSON数据解析
- <十>--国际音标的显示
- <十一>系统托盘的显示
- <十二>调用讲述人
- <十三>音频播放
- <十四>自动补全功能
- <十五>html特殊字符及正则表达式
- 后序