【Qt编程】基于Qt的词典开发系列<二>--本地词典的设计

简介: 我设计的词典不仅可以实现在线查单词,而且一个重大特色就是具有丰富的本地词典库:我默认加入了八个类型的词典,如下所示:由于是本人是通信专业,因此加入了华为通信词典、电子工程词典,又由于我喜爱编程,也加入了c语言基本函数词典。
我设计的词典不仅可以实现在线查单词,而且一个重大特色就是具有丰富的本地词典库:我默认加入了八个类型的词典,如下所示:

由于是本人是通信专业,因此加入了华为通信词典、电子工程词典,又由于我喜爱编程,也加入了c语言基本函数词典。下面介绍如何设计本地词典:

词典类型的选择

        当然是txt格式的最好了,因为我们可以用程序直接进行读取。可是网上词典一般都是用mdx格式、ld2格式的,我无法用Qt来直接读取。最终,经过不断摸索,网上查找,发现我们可以将mdx格式的词典通过软件转化为txt格式的!

mdx词典的下载

        如何获取mdx格式的词典呢?直接百度 mdx 词典就可以发现如下搜索结果:

从中选择下载你想要的词典,这里我以http://bbs.meizu.cn/thread-3299845-1-1.html中的第一个mdx词典“三合一汉语大辞典”作为例子。

mdx词典的查看

        由于是mdx格式的,你用记事本打开就会显示乱码。那么怎么查看你下载的词典的内容呢?这时我们可以利用一个可以解析mdx格式的软件MDict(点击下载来打开该mdx词典。
举例说明:
        假设我下载了一个“三合一汉语大辞典.mdx”,我们首先打开MDict软件来查看该词典的内容。首先选择“词库”--“词库管理”--“加入词典”,从而加入我们下载的词典文件,然后点击“词库”,从下拉列表中选择我们刚才加入的“三合一汉语大辞典”。然后单击左侧栏,就会在右侧栏中显示对应的内容。具体操作图解如下:


mdx词典的转换

        将mdx格式的词典转化为txt格式需要利用工具MDx词典转化工具(点击下载,只需要按照下图即可转化为txt文件:

        用记事本打开该txt文件我们就可以发现下图类似的语言格式:


        我们以图中第二行为例,aadb为我们要查的单词(注意:我们这里的词典是成语词典,即查找aadb四个拼音首字母所组成的成语),而后面<font </font><br>中的即为我们要找的成语,学过网页设计的人应该都知道<font color="#0000FF"><br>嗷嗷待哺</font><br>的意思,这其实是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

基于Qt的词典开发系列

  1. 词典框架设计及成品展示
  2. 本地词典的设计
  3. 开始菜单的设计
  4. 无边框窗口的缩放与拖动
  5. 无边框窗口的拖动
  6. 界面美化设计
  7. 调用网络API
  8. 用户登录及API调用的实现
  9. JSON数据解析
  10. 国际音标的显示
  11. 系统托盘的显示
  12. 调用讲述人
  13. 音频播放
  14. 自动补全功能
  15. HTML特殊字符及正则表达式
  16. 后序
作品下载地址(发布版)http://download.csdn.net/detail/tengweitw/8548767
作品下载地址(绿色版)http://download.csdn.net/detail/tengweitw/8830495
源码下载地址http://download.csdn.net/detail/tengweitw/8830503





目录
相关文章
|
2月前
|
网络协议 容器
【qt】 TCP编程小项目
【qt】 TCP编程小项目
43 0
|
6天前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
1月前
|
2月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
75 2
Qt开发网络嗅探器02
Qt开发网络嗅探器02
|
2月前
|
存储 运维 监控
Qt开发网络嗅探器01
Qt开发网络嗅探器01
|
2月前
|
网络协议 容器
Qt开发网络嗅探器03
Qt开发网络嗅探器03
关于Qt的pri模块化编程详解
关于Qt的pri模块化编程详解
|
3月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
146 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
2月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
50 0