
Qt学习之路
文章平均质量分 86
通过学习Qt的一些基础知识不断的使自己成长,逐渐学习软件开发的兴趣!
devstone
坚持下去并不是因为我坚强,而是因为我别无选择!
展开
-
C++自动序列化和反序列化在实际软件开发中的应用(二)
上述提供了一种方案和思路,按照这个思路继续扩展其它数据类型即可,如果感兴趣可以直接看这个开源项目:https://github.com/Skycoder42/QtJsonSerializer, 不过需要Qt5.12及以上版本才支持哦如果想自己动手实现,顺便深入学习下Qt元对象系统,那么可以一起参与进来,从零实现一个简易版本的序列化库: https://github.com/kevinlq/KSerialize.授人以鱼不如授人以渔, 方案和思路有了,关键还是要多动手写起来,如果有问题随时留言交流。原创 2023-09-04 23:06:43 · 429 阅读 · 0 评论 -
Qt 对象序列化/反序列化
持久化保存类对象,及保存数据到本地磁盘;socket 传输数据,需要把 json/xml/other 类型转为对象,用对象进行业务处理;数据库操作:从 db 中读取出来的值序列化成对象,方便业务进行处理(使用 ORM 框架例外)和界面交互,比如界面使用 QML 编写,那么大部分超场景会使用到 JSON。其他:待补充……原创 2023-08-14 22:26:43 · 1938 阅读 · 3 评论 -
C++(Qt) 和 Word 交互总结(二)
我们知道C/C++/Qt都是编译型语言,也是是说不能直接从源码运行,而Python是解释型语言,不需要经过编译成二进制代码可以直接从源码运行,在运行Python的时候首先经过Python解释器解释,你可以理解成翻译的意思,解释成字节码,然后在一条一条字节码指令开始执行Python提供了一些C库,我们可以在C/C++程序中包含对应头文件、库文件,进而调用函数方法来实现某个功能调用Python初始化Python上下文环境(解释器环境)导入对应的模块获取对应函数对象,参数转换,调用函数。原创 2022-09-13 21:32:20 · 2892 阅读 · 3 评论 -
C++(Qt) 和 Word、Excel、PDF 交互总结
阅读本文大概需要 6 分钟日常开发软件可能会遇到这类小众需求,导出数据到 Word、Excel 以及 PDF文件,如果你使用 C++ 编程语言,那么可以选择的方案不是很多,恰好最近刚好有这部分需求,整理下这段时间踩过的坑,方便后人读写 Word日常开发的软件使用最多的应该是导出数据到 Word 文档中,目前可以用的方案有这几种没有十全十美的方案,任何方案都存在优点和缺点,下面来详细看下这几种方案的优缺点以及适用场景XML 模板替换原理:事先编辑好一份 Word 模板,需要替换内容的地方.原创 2022-03-14 21:49:14 · 6305 阅读 · 11 评论 -
Qt Creator 源码学习笔记 05,菜单栏是怎么实现插件化的?
阅读本文大概需要 6 分钟对于一个多插件的 IDE 软件来说,支持界面扩展是必不可少的,今天我们来看看在 Qt Creator 当中是如何实现界面扩展的概述界面扩展无非就是在其它插件中访问修改主界面当中的一些菜单、参数,或者添加、删除某些菜单,目前很多大型软件都是支持插件化开发的前几篇我们一起看了Qt Creator的主界面其实很简单,主界面包括一个菜单栏,模式工具栏,内容区域以及状态栏,如下图所示:我们看到的其它丰富功能均是通过插件化实现的,今天我们详细学习下看看 QTC 当中菜单栏是怎么.原创 2022-02-14 20:47:13 · 848 阅读 · 4 评论 -
Qt Creator 源码学习笔记04,多插件实现原理分析
阅读本文大概需要 8 分钟插件听上去很高大上,实际上就是一个个动态库,动态库在不同平台下后缀名不一样,比如在 Windows下以.dll结尾,Linux 下以.so结尾开发插件其实就是开发一个动态库,该动态库能够很好的加载进主程序、访问主程序资源、和主程序之间进行通信本篇文章一起学习下 Qt Creator当中是如何实现插件的开发、加载、解析、管理以及互相通信的,方便我们开发自定义插件打下基础简介Qt Creator插件理解起来其实很简单,定义一个接口类作为基类,其他插件需要继承该类实现对应的.原创 2021-12-22 22:01:47 · 1039 阅读 · 2 评论 -
Qt Creator 源码学习笔记03,大型项目如何管理工程
阅读本文大概需要 6 分钟一个项目随着功能开发越来越多,项目必然越来越大,工程管理成本也越来越高,后期维护成本更高。如何更好的组织管理工程,是非常重要的今天我们来学习下 Qt Creator 是如何组织管理这么庞大的一个项目工程的QMake 多工程管理方法我们知道 Qt 采用 qmake语法进行组织管理工程结构,想要更好的学习管理一个工程需要你了解基本的qmake语法在Qt当中,一般以xx.pro结尾的文件是某个工程文件,我们只要打开该文件即可打开该文件管理的工程单工程基本用法比如我们新建.原创 2021-11-29 21:40:54 · 1551 阅读 · 3 评论 -
Qt Creator 源码学习笔记02,认识框架结构
阅读本文大概需要 6 分钟在上一篇大概了解了关于Qt Creator 基础知识后[^1],本篇先学习下框架基本结构,这样能够清晰的知道这个框架当中包含那些文件、文件夹、工程文件,这些文件分别代表什么意思以及有什么作用文件结构打开下载好的源码,如下目录所示可以看出来,文件和文件夹很多,不要被这些表面吓着,我们真正需要关心的没有几个,需要重点关注的我加粗显示了bin文件夹dist 文件夹doc 文件夹qbs 文件夹scripts 文件夹share 文件夹src 文件夹tests .原创 2021-11-20 21:30:00 · 904 阅读 · 2 评论 -
Qt Creator 源码学习笔记01,初识QTC
阅读本文大概需要 4 分钟Qt Creator 是一款开源的轻量级 IDE,整个架构代码全部使用 C++/Qt 开发而成,非常适合用来学习C++和Qt 知识,这也是我们更加深入学习Qt最好的方式,学习了解官方人员是如何开发一款软件的下载一般我们下载Qt进行安装的时候会默认安装好Qt Creator,此时安装的是可执行程序,而我们今天要讲的是下载源码并且编译,那么首先要到官方仓库中下载某个版本的源码下载方式有两种,下载zip源码包和gigt clone 获取直接下载,打开通用下载页面下载由于目.原创 2021-11-16 21:55:48 · 1287 阅读 · 2 评论 -
关于开源项目「基于ZigBee和STM32的智能家居控制系统」的使用说明
阅读本文大概需要 6.6 分钟大家好,我是 devstone,很感谢大家对这个项目的喜爱和关心,自从该项目公开以来断断续续有很多人加我好友询问一些基础问题,我也回复过很多,当然了以后也可能会有人问到,为了不再重复回复,我今天专门写一篇文章,详细介绍下如何使用本来早就该写了,一是因为自己平时忙,二是因为太懒惰,一直拖到现在01 项目介绍该项目的原型是自己当初的本科毕业设计,从零开始做的,其中包括硬件原理图、PCB,到后面元器件的焊接、下位机程序编写,上位机程序编写,ZigBee 无线通讯程序编.原创 2021-04-07 23:07:07 · 9450 阅读 · 5 评论 -
客户端以管理员权限运行
阅读本文大概需要 3 分钟管理员权限可能大家也比较熟悉,某些软件在运行的时候会弹出安全提示,提示是否以管理员权限运行,点击确定后才能正常运行随着 Windows 系统的的升级,在 Window 7以上的系统中,我们要读写某些特殊位置可能需要管理员权限,否则会导致读写失败,比如注册表的读写,因此在这种情况下我们需要启动时就要获取管理员权限给程序设置管理员权限只需要设置应用程序清单配置即可场景描述上周五使用 Qt 的打包工具打包一个客户端,打包完成后一切都正常,唯独写注册表失败,发现失败的几台电脑.原创 2021-03-02 15:28:14 · 332 阅读 · 0 评论 -
QLibrary 加载动态库
阅读本文大概需要 6.6分钟一般情况下在没有头文件支持情况下,想要引入某个动态库,最好的办法就是使用「动态加载」的方法,在Qt中一般使用QLibyary来操作常用 api QLibrary(const QString& fileName, QObject *parent = nullptr); QFunctionPointer resolve(const char *symbol); bool load(); bool unload(); bool isLoaded() const.原创 2021-01-18 20:33:30 · 426 阅读 · 0 评论 -
QPinter 常用绘制图像的方法
阅读本文大概需要 3 分钟我们在开发软件的过程中,绘制图像功能必不可少,使用 Qt 绘制图像时非常简单,只需要传递几个参数就可以实现功能,在 Qt 中绘制图像的 api有好几个 void drawImage(const QRectF &targetRect, const QImage &image, const QRectF &sourceRect, Qt::ImageConversionFlags flags = Qt::Auto.原创 2020-11-30 22:02:39 · 798 阅读 · 0 评论 -
如何给程序添加版本号
阅读本文需要3分钟自己亲手编译过 Qt Creator 源码的朋友都有这样的疑惑,为啥编译完成后最终生成的动态库、插件以及 exe 都会带数字 4 后缀,下面记录下如何出现以及如何解决Aggregationd4.dll一般我们在构建程序时一个简单的工程 pro 是这样的TEMPLATE = appTARGET = $$IDE_APP_TARGETDESTDIR = $$IDE_BIN_PATHQT = coreHEADER += \ ...SOURCE += \ .原创 2020-11-18 20:28:30 · 1522 阅读 · 2 评论 -
qmake奇淫技巧之字符串宏定义
阅读本文大概需要3.3分钟我们平时在软件开发过程中需要定义一些宏,以便在代码中调用,这样每次不需要修改代码,只需要修改外部编译命令就可以得到想要的参数,非常方便比如我们想在软件介绍中显示软件版本,让别人知道当前使用的软件是那个版本,一般会怎么做呢?直接在代码中写死,版本号是多少从外部配置读取显示编译的时候通过编译条件读取,然后代码中读取对应变量值今天看看平时使用最多的 Qt Creator 是怎么处理的随便打开 Qt Creator的关于软件可以看到通过阅读源码就可以很清楚的知道,.原创 2020-11-01 15:13:46 · 1903 阅读 · 1 评论 -
酷狗音乐模仿还在继续
酷狗音乐模仿还在继续前一段时间刚好有时间,就试着去写一写酷狗音乐的界面,无奈好多资源图片找不到,只能凑合着用吧,界面做的还很粗糙,有待细化。仔细观察酷狗音乐界面,主要可以分为四部分构成:标题栏左边工具栏右边歌曲、歌词、MV等界面底部控制栏下面主要说说界面的组成界面的组成是这样的,标题栏、左边工具栏、右边内容区域、底部工具栏都是继承自QWidget的,主界面是继承自QFrame的,在主界面将原创 2016-03-21 11:57:31 · 6905 阅读 · 34 评论 -
基于Qt的wifi智能小车的制作(一)
基于Qt的wifi智能小车的制作(一) 好久不写博客了,真的是有点惭愧了。翻开上一次的博客,到现在已经2个多月了,只能说是自己太懒惰了!忙是另一回事!趁今天晚上有点时间回顾下这一段时间的收获以及做的一些东西,算是一份笔记,一遍以后能回想起。首先说说开始做的一款wifi小车吧,一方面是因为个人的爱好,一方面算是其他原因。首先上几张小车照片。原创 2015-10-27 20:43:39 · 15631 阅读 · 18 评论 -
Qt 程序运行过程中提示toolChains.xml磁盘已满
Qt程序运行过程中遇到了一下问题,还真的是不知所措,在此记录下:点击确定后还是会不断的弹出这个对话框!郁闷死了!百度了下,只只找到了一个关于这个介绍的:http://bbs.youkuaiyun.com/topics/390106707检查了下qtversion.xml这个文件属性,完全没有问题。原创 2016-01-10 19:55:08 · 3047 阅读 · 3 评论 -
Qt程序移植到ARM板上去掉鼠标样子
搞过嵌入式的都往ARM板子上跑过自己的QT程序,当把程序移植到板子上时,发现总是存在一个鼠标指针,这显然不是很美观,怎么样去掉呢,其实也是有对应的办法的。很简单的一句代码就搞定了!原创 2016-01-15 14:50:32 · 2353 阅读 · 1 评论 -
关于Qt报出Undefined reference to vtable for xxx的问题
关于Qt报出Undefined reference to vtable for xxx的问题 前些天无意间遇到这个问题,重新构建还是不行,最后仔细一想就是Qt中的原对象在搞鬼,特此做下笔记。问题现象:问题描述: 程序之前运行时完好的,当向其中加入Q_OBJECT后会出现如上问题,程序本省没有错误。解决方法: 关闭工程,删除影子构建目录,重新打开工程,编译即可!原因分析: 发生这个问题的原原创 2016-02-21 14:22:09 · 1060 阅读 · 0 评论 -
Qt个性化系统托盘的实现(电脑管家)
Qt实现个性化系统托盘 今天刚好有点时间,就想着模仿下电脑管家的系统化托盘,看着挺好看的。下边是电脑管家自带的系统托盘: 可以看出主要是由三部分组成的,分为上部,中间和底部,上边是 2个label,加2个图标label;中间是6个按钮,文字显示在底部,只能是QToolButton了,QPushButton办不到;底部也是2个图标label加2个开关按钮(开关按钮需要自己实现状态切换),最底原创 2015-10-31 14:10:23 · 4540 阅读 · 10 评论 -
Qt利用代码实现流水灯的效果
用代码实现流水灯的效果 其实很想实现这种流水灯的效果了,看起来挺酷的,用处也很多,只是开始没有思路不知道怎么去实现,于是在我的超市收银项目中就采用了图片加载的方式进行显示,效果如下图所示: 由于是动态图片,显示的时候就要用到QMovie进行加载,简单的代码如下所示: QMovie *move = new QMovie(":/images/splash.gif")原创 2015-04-16 22:53:55 · 9135 阅读 · 2 评论 -
Qt布局管理器的使用(一)
Qt中的控件布局原创 2014-08-31 15:25:29 · 2957 阅读 · 2 评论 -
Qt布局管理器的使用(二)
Qt布局管理器的使用(二) 前面博文(http://blog.youkuaiyun.com/u013704336/article/details/38960353)讲解了手动布局的基本思路,今天说下用代码怎样进行一些常用的简单布局。 首先,心中要规划好,自己要实现的模块的分布可以事先在纸上进行大致的绘制,然后心中就有了大致的轮廓。 今天就按照上次讲的,实原创 2015-04-18 00:30:08 · 2332 阅读 · 2 评论 -
Qt之酒店管理系统
最近几天,学校安排课设,选到的题目是酒店管理系统,刚拿到手感觉挺简单的,不就简单的来人了入住,实现登录、修改密码就行了吗?可是静下心来一分析,不是自己想想的那么简单,真的是有点复杂,迫于时间关系,只是实现了一小部分的功能,等忙完这阵子,在补充其他功能。先晒下系统界面吧。 1、登陆界面(管理员和顾客)可以实现管理员和客户分别登陆。另外还增加了注册功能,提供给没有账号的客户使原创 2014-12-27 15:23:34 · 23583 阅读 · 101 评论 -
Qt实现小型的超市收银系统
作为联系,打算用Qt开发一个小型的收银系统,从开始的构思,到基本功能的实现,经历了些时间,很多时候是学校的其他事情打扰的不行,没能静下心来连续做,那样的话就会快很多了。 其实真正做一件东西的时候,需要我们静下心来不断的去做,这样心里感觉会好很多。今天记录下自己做这个项 目的过程,以后翻出来还可以看看。 本人很喜欢本着开源的心来学习的,但是好多...原创 2014-11-11 16:45:30 · 15278 阅读 · 107 评论 -
Qt中实时将Qtableview中的内容显示在相应的控件上
学习Qt有一段时间了,几天做东西需要将Qtableview中的数据显示在相应的控件上,想看好久,终于搞定了,特意拿出来,和大家分享,也当做是自己的一个学习笔记。 首先我的Qtableview中的的内容是从数据库中查找出来再显示 出来的。下面是以个关于某个公司信息种类的数据。这是数据库中的记录 效果是这样的: 点击上面的某行数据,下面的lineEdit中就会显原创 2014-11-22 14:48:00 · 9661 阅读 · 10 评论 -
Qt中启动界面的设计
Qt启界面的三种实现方法原创 2014-11-27 20:10:16 · 3964 阅读 · 2 评论 -
Qt实现系统托盘
Qt实现系统托盘的功能原创 2014-12-12 22:58:22 · 1981 阅读 · 3 评论 -
Qt编译mysql以及创建表后进行导入操作
Qt环境下编译mysql记忆测试mysql数据库连接情况原创 2014-12-19 20:31:38 · 3720 阅读 · 4 评论 -
QT我的简易记事本
Qt实现的一个简单的记事本原创 2014-12-06 16:10:35 · 2697 阅读 · 9 评论 -
QT变换程序的图标
在一般编写完成的Qt程序图标都是系统默认的,感觉特别原创 2014-04-29 18:36:15 · 1415 阅读 · 0 评论 -
QT重装后出现的问题
几天前自己编写了一个记事本原创 2014-04-30 21:15:27 · 1495 阅读 · 1 评论 -
Windows下 Qt环境变量的配置
作为一种跨平台的软件,首先必须学会它的安装,在接着就是配置。这样才能继续以后的各种工作原创 2014-06-13 17:43:04 · 5494 阅读 · 0 评论 -
Qt-Installer-Framework使用一
Qt-Installer-Framework使用一Qt-Installer-Framework (以下简称QIFW) 是 Qt 官方出品的一款功能强大的打包工具,可以满足我们日常使用中大部分需求.环境说明OSQtMinGWQIFWWindows7 64Qt 5.7.15.33.0.6目前使用上述平台环境进行测试验证,后续验证完在补充。支持平台依赖于 Q...原创 2019-10-01 12:23:43 · 638 阅读 · 0 评论 -
Qt-Installer-Framework使用二
Qt-Installer-Framework使用二上一篇文章记录了QIFW基本的使用,下面说说一些个性化配置功能.打包结构说明基本结构如下所示:主要包含两部分,config 和 packages.config 目录主要放置一些打包软件的整体配置,比如打包后安装过程中显示的软件名称、版本号、公司名称、界面图标等等信息;packages 目录主要配置每个安装组件的信息。组件化安装配置是 ...原创 2019-10-01 12:25:58 · 658 阅读 · 1 评论