Qt编程
nineheaded_bird
这个作者很懒,什么都没留下…
展开
-
【Qt编程】Qt 小时钟
Hello World! 学习编程语言的最简单最经典的小程序,当然Qt也不例外。在学习画图时,我觉得写个时钟小程序也是个比较好的开始。在之前的《Matlab及Java小时》一文中,我也从写时钟程序作为学习画图的开始。三者之间的不同点在于,matlab是通过while循环来进行重绘,Java和Qt事件来处理。实时显示时钟,都是通过改变指针与坐标轴的相对位置来实现的。前两者都是改变指针,而Qt是旋转坐原创 2014-03-27 19:13:52 · 3791 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<十三>音频播放
在上一篇文章中,我是在Qt4平台上调用本地发音的,后来由于用到JSON解析,就将平台转到了Qt5,因为Qt5自带解析JSON的类。然后发现上一篇文章的方法无法运行,当然网上可以找到解决方法,我在这里直接调用Qt只带的类进行网络音频播放和本地播放。比较适用于单词的网上发音和无网情况下的本地发音,而不用将音频文件下载下来,占用太多内存。为了简便起见,工程里只有一个main.cpp文件,不要忘了原创 2014-08-14 11:07:31 · 2598 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<四>--无边框窗口的缩放与拖动
在现在,绝大多数软件都向着简洁,时尚发展。就拿有道的单词本和我做的单词本来说,绝大多数用户肯定喜欢我说做的单词本(关于颜色搭配,大家就不要在意了)。有道的单词本:我所做的单词本:很明显,两者的主要区别就是周围的边框问题。你可以对比QQ以前的版本和这几年的版本,就会发现都倾向于下面这种窗口模式。下面我们就说说如何用Qt实现无边框窗口的缩原创 2014-08-22 16:06:05 · 5668 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<六>--界面美化设计
本文讲一讲界面设计,作品要面向用户,界面设计的好坏直接影响到用户的体验。现在的窗口设计基本都是扁平化的,你可以从window XP与window 8的窗口可以明显感觉出来。当然除了窗口本身的效果,窗口中各种控件的特效也是特别重要的一环。下面讲讲我在词典软件中的一些设计:说到界面美化的设计,不得不提到美工,一个好的美工是想当的重要!软件毕竟少不了图标,而不懂美工的我,也就只能在网上使用别人的图标了原创 2015-04-23 17:15:44 · 5124 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<十五>html特殊字符及正则表达式
1、html特殊字符的显示 我们知道html语言和C语言一样也有一些特殊字符,它们是不能正常显示的,必须经过转义,在网上可以查到如何显示这些字符,如下图所示:上图给了最常用的特殊字符的显示,下面我们来实验一下:首先在记事本中写入一句:程序例#include然后就文本后缀名改为.html后,用浏览器打开,显示如下:我们从上图可以发现i原创 2014-08-21 18:01:48 · 3479 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<五>--无边框窗口的拖动
在上一篇文章中,我们讲述了如何进行无边框窗口的缩放与拖动,而在一些情况下,我们的窗口只需要进行拖动也不需要改变其大小,比如:QQ的登录窗口。本来在上一篇文章中已经讲述了如何进行窗口的拖动,但是却与窗口的缩放相关的程序放在一起,下面专门单独分离出来。 窗口的拖放只涉及到鼠标事件:按下操作、释放操作和移动操作,因此只需要重写这三个函数。由于程序比较简单,并且注释也比较详细,就不作原创 2014-08-25 10:47:45 · 2813 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<十四>自动补全功能
最近写了一个查单词的类似有道词典的软件,里面就有一个自动补全功能(即当你输入一个字母时,就会出现几个候选项)。这个自动补全功能十分常见,百度搜索关键词时就会出现。不过它们这些补全功能都是与你输入的进行首字匹配,有时也会不方便。例如,如果我输入一个“好”,如果是首字匹配的话会出现下图:如果是句中匹配的话,则是这种情况:你可以根据自己的要求进行选择哪一种模式。原创 2014-08-19 22:48:29 · 4088 阅读 · 2 评论 -
【Qt编程】基于Qt的词典开发系列<二>--本地词典的设计
我设计的词典不仅可以实现在线查单词,而且一个重大特色就是具有丰富的本地词典库:我默认加入了八个类型的词典,如下所示:由于是本人是通信专业,因此加入了华为通信词典、电子工程词典,又由于我喜爱编程,也加入了c语言基本函数词典。下面介绍如何设计本地词典:词典类型的选择 当然是txt格式的最好了,因为我们可以用程序直接进行读取。可是网上词典一般都是用mdx格式、l原创 2015-04-13 17:36:05 · 6230 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<三>--开始菜单的设计
这篇文章讲讲如何实现开始菜单(或者称为主菜单)的设计。什么是开始菜单呢?我们拿常用的软件来用图例说明,大多数软件的开始菜单在左下角,如下图:1、window 7的开始菜单2、有道词典的主菜单3、QQ的开始菜单4、我写的词典软件的开始菜单当你左键单击开始菜单时,就会弹出相应的菜单选项,然后你就可以进行相关操作。本文只讲如何实原创 2015-04-17 17:43:31 · 3435 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<七>--调用网络API
前面文章中我们实现了本地的词库设计,可以完成本地的查词功能,那么这篇文章主要讲一讲如何通过调用网络的api来实现词典的网络查词功能。词典API的选择基本上市面上做词典软件的公司都有对应的api,比如说有道、金山等等,不过一般都需要api key,有点麻烦,于是乎,我就找了个简单好用的扇贝网API:http://www.shanbay.com/help/developer/api/ 奇怪的是,该api原创 2015-06-23 17:10:37 · 5455 阅读 · 2 评论 -
【Qt编程】基于Qt的词典开发系列<十>--国际音标的显示
在年前的一篇文章中,我提到要学习Qt.于是在这学期看了一个月的qt。现在大致对qt有了一些了解。但是现在导师又把我调到了android应用开发平台,所以说qt的学习要搁置了。本打算这学期做一个单词查询软件的,目测只有在暑假完成了,现在才刚刚完成了本地词库的查询。目前的工作解决了词库的来源、本地词典的查询功能。日后的工作还有访问网络词库、记单词的算法实现等等。下面来说一说我在本地查词功能实现的问题—原创 2014-04-09 20:26:34 · 2907 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列--后序
从去年八月份到现在,总算完成了词典的编写以及相关技术文档的编辑工作。从整个过程来说,文档的编写比程序的实现耗费的时间更多。基于Qt的词典开发系列文章,大致包含了在编写词典软件过程中遇到的技术重点与难点。每篇文章都完成了一个小的功能,所给的代码都基本上是可以独立运行的。本系列文章对于想要自己动手完成词典软件的程序员来说具有很好的参考价值,对于想要编写其它软件的人来说也具有参考意义。词典软件制原创 2015-06-23 16:11:07 · 4053 阅读 · 10 评论 -
【Qt编程】基于Qt的词典开发系列<一>--词典框架设计及成品展示
去年暑假的时候,作为学习Qt的实战,我写了一个名为《我爱查词典》的词典软件。后来由于导师项目及上课等原因,时间不足,所以该软件的部分功能欠缺,性能有待改善。这学期重新拿出来看时,又有很多东西都不熟悉了。恰逢这学期课比较少,于是乎想写写关于这个软件制作的一系列文章,对日后重拾该软件时能够较快入手。当然,也非常乐意读者们在该软件的基础上添加一些功能,源代码会在该系列文章写完之后公布。可运行的词典软件的原创 2015-03-31 09:15:11 · 5153 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<十一>系统托盘的显示
本文主要讨论Qt中的系统托盘的设置。系统托盘想必大家都不陌生,最常用的就是QQ。系统托盘以简单、小巧的形式能让人们较快的打开软件。废话不多说,下面开始具体介绍。首先,新建一个Qt Gui项目,类型选择QMainWindow,类名也选择默认的mainwindow。这时,工程项目中就有3个文件(界面文件不用管):mainwindow.h mainwindow.cpp main.cpp。原创 2014-07-28 21:35:36 · 2313 阅读 · 0 评论 -
【Qt编程】基于Qt的词典开发系列<九>--JSON数据解析
在上一篇文章《用户登录及API调用的实现》中,我通过程序实现了用户登录及API调用的实现,从而能够实现网络查词、添词的操作。但是,从上文中可以看到,调用API后返回的是JSON格式的数据,如下图所示(在QtCreator中的显示): 为了更好的观察JSON格式,我整理后显示如下: 显然,为了显示查词的结果,我们必须在上图中提取有用的信息,并正确的显示出来。上图中每一行内容的意思我已经在原创 2015-06-23 17:05:05 · 3548 阅读 · 0 评论 -
【Qt编程】Qt学习笔记<三>
1. 如果程序中使用了png以外格式的图片,在发布程序时就要将Qt安装目录下plugins中的imagineformats文件复制到发布文件中。2. 在函数声明处快速添加函数定义可单击函数名,按下alt+Enter键后,按下Enter键就可以进入到函数定义部分。3. 关联槽和信号的两种方法:1.直接在设计器中用鼠标拖拽,适合于设计器中的部件间进行。2.在设计器原创 2014-03-20 19:46:49 · 1151 阅读 · 0 评论 -
【Qt编程】Qt学习之窗口间的相互切换
在用Qt设计GUI时,经常要设计两个窗口之间的相互切换,即可以从一个窗口跳转到另一个窗口,然后又从另一个窗口跳转回原窗口。下面我们来介绍具体的实现方法:首先,我们建立Qt Gui应用,项目名TwoWindowsHandoff(可以随便取),基类选择QMainWindow。然后右击项目,添加Qt设计器界面类,类名取为logindialog。我们在这里假设一个窗口是登录对话框,另一个窗口是主界面原创 2014-03-15 10:49:27 · 29189 阅读 · 4 评论 -
【Qt编程】Qt学习之状态栏
QStatusBar类提供一个水平条来显示状态信息。所谓状态信息,拿个简单的例子来说,当你在word中编辑时,左下角就会出现页面、字数等等信息。状态信息可以分为三类:临时信息,如一般的提示信息;正常信息,如页数;永久信息,如版本信息。QMainWindow中默认提供了一个状态栏。我们可以使用showMessage()来显示一个临时消息,它会出现在状态栏的最左边。我们一般用addWidget()将一原创 2014-03-29 20:09:29 · 13999 阅读 · 3 评论 -
【Qt编程】Qt学习笔记<二>
1. QApplication类和QWidget类都包含在QtGui模块中。所以我们可以只包含这个头文件即可。2. 在c++中,用new分配了内存空间就需要用delete来释放空间,而在Qt中,释放父对象时,会自动销毁子对象。3. 将光标定位到函数上时,会浮现出提示,按提示按f1就可以进入该函数的帮助文档。4. 在main.c文件中,程序只有进入原创 2014-03-04 19:40:58 · 1831 阅读 · 0 评论 -
【Qt编程】Qt学习之Window and Dialog Widgets
Qt Creator 提供的默认基类只要QMainWindow、QWidget和QDialog三种。其中,QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话框的基类,这两个类都是QWidget的子类。窗口部件(Widget)是Qt中建立用户界面的主要元素。一个没有嵌入到其它部件的部件称为窗口(如QMainWindow、QDialog),而一般窗口有边框、标题栏,当然翻译 2014-02-28 16:51:25 · 2426 阅读 · 0 评论 -
【Qt编程】Qt学习笔记<一>
1. 在创建项目时,项目名和路径中都不能出现中文。2. 可以使用Ctrl + “+”和Ctrl + “-”来改变程序的字体大小(Ctrl+鼠标滑轮可达到同样效果),使用Ctrl + “0”可以恢复到默认字体大小。3. 在设计模式下有几个过滤器,就是写着“Filter”的行输入框,可以帮助你更快的找到所需要的部件。4. 如果生成的.exe文件不能运原创 2014-02-27 20:14:26 · 1833 阅读 · 0 评论 -
【Qt编程】3D迷宫游戏
说起迷宫想必大家都很熟悉,个人感觉迷宫对人的方向感是很大的考验,至少我的方向感是不好的,尤其是在三维空间中。由于这段时间帮导师做项目用到了三维作图,便心血来潮想做个三维迷宫玩玩。要想画出三维的迷宫游戏,我们需要先从二维开始。二维迷宫:迷宫的程序描述: 现实生活中,我们经常将问题用数学的方法来描述并解决(数学建模)。同样的,我们想用程序来解决问题,就得把问题程序原创 2014-10-18 18:30:38 · 7966 阅读 · 1 评论 -
【Qt编程】QWT在QtCreator中的安装与使用
由于导师项目的需要,需要画图,二维+三维。三维图我用的是Qt+opengl,二维图我决定使用qwt工具库来加快我的项目进展,毕竟还有期末考试。关于Qt+opengl的使用有时间的话以后再介绍。 首先我们说说QWT是什么?下面是百度百科的介绍:QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可原创 2014-12-08 16:36:58 · 9227 阅读 · 2 评论 -
【Qt编程】基于QWT的曲线绘制及图例显示操作
在《QWT在QtCreator中的安装与使用》一文中,我们完成了QWT的安装,这篇文章我们讲讲基础曲线的绘制功能。 首先,我们新建一个Qt应用程序,然后一路默认即可。这时,你会发现总共有:mainwindow.h,mainwindow.cpp,main.cpp,mainwindow.ui四个文件。然后,选中项目,添加新文件,添加一个c++类,我们假设命名为PlotLines,基类选择Qw原创 2014-12-13 16:46:42 · 21762 阅读 · 3 评论 -
【Qt编程】设计ColorBar颜色栏
画过图的都知道,我们常常用颜色的深浅来表示值的大小,在Matlab作图中,我们使用的是colorbar这个函数来给出颜色的直观参考。下面给出Matlab的示例:在Matlab命令窗口输入:figuresurf(peaks)colorbar可以得到的图像如下:通过右击该颜色栏,可以选择不同的颜色,当选择jet后,可以得到如下的图像:那上面的示例原创 2015-04-09 11:37:42 · 12365 阅读 · 3 评论 -
【Qt编程】基于Qt的词典开发系列<八>--用户登录及API调用的实现
在上一篇文章《调用网络API》中,我只讲述了如何直观的使用API接口以及调用API后返回的结果,本文则从程序实现的角度来实现API的调用,当然本程序的实现也是借助于扇贝网的API接口文档http://www.shanbay.com/help/developer/api/。由API文档可知,要想调用其API,必须先注册。因此,我就注册了,账户名为nineheadedbird, 密码为1234原创 2015-06-23 16:23:06 · 5071 阅读 · 2 评论 -
【Qt编程】基于Qt的词典开发系列<十二>调用讲述人
我们知道,win7系统自带有讲述人,即可以机器读出当前内容,具体可以将电脑锁定,然后点击左下角的按钮即可。之前在用Matlab写扫雷游戏的时候,也曾经调用过讲述人来进行游戏的语音提示。具体的Matlab脚本文件如下: sp=actxserver('SAPI.SpVoice');sp.Speak('你好,欢迎来到西安电子科技大学!Hello,Welcome to XD University!')原创 2014-07-30 21:00:53 · 3167 阅读 · 5 评论 -
【Qt编程】Qt版扫雷
学习要学会举一反三。在以前的《用matlab扫扫雷》一文中,我用matlab简单的编写了一个扫雷小程序。当然,与Windows自带的扫雷程序自然是不敢相提并论。今天我就用c++来写个扫雷程序,算是对c++的练习。在那篇文章中提过,扫雷问题是NP完全问题,不能被解决。网上也有人做过扫雷的辅助工具,但也只是指明肯定是雷、和肯定不是雷的位置,不能完全求解。下面来讲述我的程序设计思路:1.用随机数生成原创 2014-04-10 20:07:06 · 6971 阅读 · 1 评论