我设计的词典不仅可以实现在线查单词,而且一个重大特色就是具有丰富的本地词典库:我默认加入了八个类型的词典,如下所示:

由于是本人是通信专业,因此加入了华为通信词典、电子工程词典,又由于我喜爱编程,也加入了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
原文:http://blog.csdn.net/tengweitw/article/details/45014771作者:nineheadedbird

【Qt编程】基于Qt的词典开发系列二--本地词典的设计相关推荐

  1. 【Qt编程】基于Qt的词典开发系列六--界面美化设计

    本文讲一讲界面设计,作品要面向用户,界面设计的好坏直接影响到用户的体验.现在的窗口设计基本都是扁平化的,你可以从window XP与window 8的窗口可以明显感觉出来.当然除了窗口本身的效果,窗口 ...

  2. 【Qt编程】基于Qt的词典开发系列十二调用讲述人

    我们知道,win7系统自带有讲述人,即可以机器读出当前内容,具体可以将电脑锁定,然后点击左下角的按钮即可.之前在用Matlab写扫雷游戏的时候,也曾经调用过讲述人来进行游戏的语音提示.具体的Matla ...

  3. 【Qt编程】基于Qt的词典开发系列一--词典框架设计及成品展示

    去年暑假的时候,作为学习Qt的实战,我写了一个名为<我爱查词典>的词典软件.后来由于导师项目及上课等原因,时间不足,所以该软件的部分功能欠缺,性能有待改善.这学期重新拿出来看时,又有很多东 ...

  4. .ne中的控制器循环出来的数据如何显示在视图上_让不懂编程的人爱上iPhone开发系列2 iOS12+Swift4.2版-Checklists-16...

    让不懂编程的人爱上iPhone开发系列2 iOS12+Swift4.2版-Checklists-16 添加导航栏按钮 说明: 本系列教程改编自raywenderlich.com中的iOS Appren ...

  5. android 原生开发 3d地图 下载_arcgis api 3.x for js 入门开发系列二不同地图服务展示(附源码下载)...

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  6. 短信开发系列(二):GSM手机短信开发之短信解码

    短信开发系列目录: 短信开发系列(一):GSM手机短信开发初探 短信开发系列(二):GSM手机短信开发之短信解码 短信开发系列(三):短信接收引擎 昨天写了短信的发送,今天我们在来谈谈如果读取SIM卡 ...

  7. Qt:基于Qt开发的轻量级HTTP/HTTPS服务器

    介绍 JQHttpServer是基于Qt开发的轻量级HTTP/HTTPS服务器,目前支持GET和POST两个协议. 底层有QTcpSocket.QSslSocket和QLocalSocket三个版本, ...

  8. Qt编程(一) Qt框架简介

    1.Qt5 架构 qt 5将所有模块分为三个部分:Qt基本模块(Essentials).Qt扩展模块(Add-ons). 开发工具(Tools) 基本模块定义了基础功能,是核心,兼容所有平台.包括: ...

  9. 【QT编程】QT对象间通讯——信号与槽

    01.目录 文章目录 01.目录 02.信号与槽介绍 03.信号与槽机制 04.信号(Signal) 05.槽函数(Slot) 06.一个示例 07.一个真实的示例 08.信号和槽使用默认参数 09. ...

  10. leaflet-webpack 入门开发系列二加载不同在线地图切换显示(附源码下载)

    前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载 webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 ...

最新文章

  1. 独家 | creditR 的基于实践的导论:一个神奇的改良信用风险评分和验证的R包(附代码)...
  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统(19)-权限管理系统-用户登录
  3. JavaSE(二十三)——JVM
  4. python的out模式_如何用python中的DataFrame列的模式替换NA值?
  5. vue-transition动画
  6. 大话Fragment管理
  7. python find不区分大小写_牛鹭学院:Python基础了解
  8. 基于Salmon的转录组批量定量流程和差异分析
  9. 3534 helpmsg mysql net_MySQL出现NET HELPMSG 3534
  10. TensorFlow精进之路(一):Softmax回归模型训练MNIST
  11. adobe reader XI 打开后闪退(或过几秒后自动退出)【解决方案】
  12. 易班APP抓包自动打卡
  13. php excel导出pdf文件,如何修复“无法加载PDF呈现库”使用PHPExcel TCPDF将Excel导出为PDF...
  14. java设计triangle三角形_Java:【三角形类Triangle】设计一个名为Triangle的类来扩展GeometricObject类。该类包括:...
  15. GraphGallery,一个基于TensorFlow 2.x与 PyTorch 的GNN benchmark 框架
  16. 佳能(Canon)打印机初始化备忘录
  17. 软件测试的14种类型
  18. 计算机组成原理 习题+知识点
  19. 网络安全工程师需要考什么证吗?
  20. 计算机组成原理1,计算机组成原理1.pdf

热门文章

  1. Spring源码解析:Spring Aware 原理解析
  2. 计算机无本地安全策略,如何打开本地安全策略、如何解决“未授予用户在此计算机上的请求登录类型”...
  3. 程序员有哪些含金量高的证书可以考?
  4. 激光共聚焦如何选择荧光染料
  5. 灰色预测模型python实例_12-6:数学模型(灰色模型)与Python编程预测
  6. 散射理论对微波遥感的重要性
  7. html 展开 折叠,HTML实现点击展开和收起
  8. u盘 计算机管理 没有就绪,U盘插上电脑显示驱动器未准备就绪。怎么办?
  9. 免费的思维导图软件都有哪些?
  10. 电路串联和并联图解_判断串联并联电路图口诀