- 博客(106)
- 资源 (28)
- 收藏
- 关注

原创 关于博客中介绍的工程源码获取方法
关于博客中介绍的工程源码获取方法从开始编写博客开始,到现在好几年了,几乎每天都有人留言、加我QQ或者发邮件索要XXX工程源码,特此写篇文章再次说明下,方便他人也更节省各自的沟通时间说明互联网现在这么发达,其实大部分东西都是可以直接搜索到的,关键看你愿不愿意搜索,如果实在找不到,再请教别人,但是在请教别人的时候麻烦别一上来就问,在不在,我能问你xxx问题么,然后就没有然后了……,大家的时间...
2019-05-19 10:27:53
1400
11

原创 分享下个人一直以来整理维护的C++/Qt开发用到的控件库
今天分享下个人一直以来在维护的一个C++/Qt开发库,感兴趣的可以关注并下载下看看,应该会用的到,这个库会不定期的进行更新.工程结构详细的说明可以到工程文件下查看readme文件.部分效果展示如何获取工程代码已经开源,直接到github上进行fork即可。下载地址:https://github.com/kevinlq/LQFramKit欢迎大家star和...
2018-04-22 12:04:58
5710
14
原创 QML 高效开发之加载方式
比如你在程序中使用了某张图片,需求变化需要更新某张图片,你直接拷贝替换后直接运行程序,发现未生效,找了半天问题,最后构建后发现神奇的好了。存在开发效率慢问题,比如每次修改界面内容后需要先构建才能看到实际效果,尤其在频繁调试界面样式时显得更繁琐。无法感知是否修改,构建后才会更新对应的数据内容(如图所示)知道了问题原因,那就可以对症下药。简而言之,跳过 编译型。编译型资源每次更改后都需要构建才能生效。作为一种特殊的资源文件,每次改动后。其它资源文件比如图片等,原理类似。开发软件过程中,默认使用。
2024-02-21 21:05:41
341
原创 C++自动序列化和反序列化在实际软件开发中的应用(二)
上述提供了一种方案和思路,按照这个思路继续扩展其它数据类型即可,如果感兴趣可以直接看这个开源项目:https://github.com/Skycoder42/QtJsonSerializer, 不过需要Qt5.12及以上版本才支持哦如果想自己动手实现,顺便深入学习下Qt元对象系统,那么可以一起参与进来,从零实现一个简易版本的序列化库: https://github.com/kevinlq/KSerialize.授人以鱼不如授人以渔, 方案和思路有了,关键还是要多动手写起来,如果有问题随时留言交流。
2023-09-04 23:06:43
423
1
原创 Qt 对象序列化/反序列化
持久化保存类对象,及保存数据到本地磁盘;socket 传输数据,需要把 json/xml/other 类型转为对象,用对象进行业务处理;数据库操作:从 db 中读取出来的值序列化成对象,方便业务进行处理(使用 ORM 框架例外)和界面交互,比如界面使用 QML 编写,那么大部分超场景会使用到 JSON。其他:待补充……
2023-08-14 22:26:43
1924
3
原创 C++(Qt) 和 Word 交互总结(二)
我们知道C/C++/Qt都是编译型语言,也是是说不能直接从源码运行,而Python是解释型语言,不需要经过编译成二进制代码可以直接从源码运行,在运行Python的时候首先经过Python解释器解释,你可以理解成翻译的意思,解释成字节码,然后在一条一条字节码指令开始执行Python提供了一些C库,我们可以在C/C++程序中包含对应头文件、库文件,进而调用函数方法来实现某个功能调用Python初始化Python上下文环境(解释器环境)导入对应的模块获取对应函数对象,参数转换,调用函数。
2022-09-13 21:32:20
2872
4
原创 C++(Qt) 和 Word、Excel、PDF 交互总结
阅读本文大概需要 6 分钟日常开发软件可能会遇到这类小众需求,导出数据到 Word、Excel 以及 PDF文件,如果你使用 C++ 编程语言,那么可以选择的方案不是很多,恰好最近刚好有这部分需求,整理下这段时间踩过的坑,方便后人读写 Word日常开发的软件使用最多的应该是导出数据到 Word 文档中,目前可以用的方案有这几种没有十全十美的方案,任何方案都存在优点和缺点,下面来详细看下这几种方案的优缺点以及适用场景XML 模板替换原理:事先编辑好一份 Word 模板,需要替换内容的地方.
2022-03-14 21:49:14
6280
12
原创 Qt Creator 源码学习笔记 05,菜单栏是怎么实现插件化的?
阅读本文大概需要 6 分钟对于一个多插件的 IDE 软件来说,支持界面扩展是必不可少的,今天我们来看看在 Qt Creator 当中是如何实现界面扩展的概述界面扩展无非就是在其它插件中访问修改主界面当中的一些菜单、参数,或者添加、删除某些菜单,目前很多大型软件都是支持插件化开发的前几篇我们一起看了Qt Creator的主界面其实很简单,主界面包括一个菜单栏,模式工具栏,内容区域以及状态栏,如下图所示:我们看到的其它丰富功能均是通过插件化实现的,今天我们详细学习下看看 QTC 当中菜单栏是怎么.
2022-02-14 20:47:13
841
4
原创 Qt Creator 源码学习笔记04,多插件实现原理分析
阅读本文大概需要 8 分钟插件听上去很高大上,实际上就是一个个动态库,动态库在不同平台下后缀名不一样,比如在 Windows下以.dll结尾,Linux 下以.so结尾开发插件其实就是开发一个动态库,该动态库能够很好的加载进主程序、访问主程序资源、和主程序之间进行通信本篇文章一起学习下 Qt Creator当中是如何实现插件的开发、加载、解析、管理以及互相通信的,方便我们开发自定义插件打下基础简介Qt Creator插件理解起来其实很简单,定义一个接口类作为基类,其他插件需要继承该类实现对应的.
2021-12-22 22:01:47
1032
2
原创 Qt Creator 源码学习笔记03,大型项目如何管理工程
阅读本文大概需要 6 分钟一个项目随着功能开发越来越多,项目必然越来越大,工程管理成本也越来越高,后期维护成本更高。如何更好的组织管理工程,是非常重要的今天我们来学习下 Qt Creator 是如何组织管理这么庞大的一个项目工程的QMake 多工程管理方法我们知道 Qt 采用 qmake语法进行组织管理工程结构,想要更好的学习管理一个工程需要你了解基本的qmake语法在Qt当中,一般以xx.pro结尾的文件是某个工程文件,我们只要打开该文件即可打开该文件管理的工程单工程基本用法比如我们新建.
2021-11-29 21:40:54
1544
3
原创 Qt Creator 源码学习笔记02,认识框架结构
阅读本文大概需要 6 分钟在上一篇大概了解了关于Qt Creator 基础知识后[^1],本篇先学习下框架基本结构,这样能够清晰的知道这个框架当中包含那些文件、文件夹、工程文件,这些文件分别代表什么意思以及有什么作用文件结构打开下载好的源码,如下目录所示可以看出来,文件和文件夹很多,不要被这些表面吓着,我们真正需要关心的没有几个,需要重点关注的我加粗显示了bin文件夹dist 文件夹doc 文件夹qbs 文件夹scripts 文件夹share 文件夹src 文件夹tests .
2021-11-20 21:30:00
903
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
1277
2
原创 DCMTK 学习笔记2 传输语法
阅读本文大概需要 4 分钟传输语法表示了某个dicom在传输过程中的一些状态封装,有三种形式值表示法(VR):显式VR、 隐式VR字节顺序: Little Endian、 Big Endian压缩格式: JPEG/RLE/有损/无损等好几种如果是压缩文件,则需要先进行解压操作官方Demo压缩文件DJEncoderRegistration::registerCodecs(); // register JPEG codecsDcmFileFormat fileformat;if (f.
2021-08-22 21:39:47
659
1
原创 DCMTK 学习笔记一 之解析tag标签
阅读本文大概需要 3.3 分钟我们要解析显示一张 dcm图像,首先必须要解析其部分标签信息。标签信息主要有三类:Meta info普通 tag像素 tag根据需要进行读取使用 DCMKT读取 dicom标签是很容易的一件事情meata info tag读取meta 信息在 0002组有三种方式读取,这里展示最简单的一种 DcmMetaInfo metainfo; OFCondition status; status = metainfo.loadFile(.
2021-06-23 21:18:46
860
原创 关于开源项目「基于ZigBee和STM32的智能家居控制系统」的使用说明
阅读本文大概需要 6.6 分钟大家好,我是 devstone,很感谢大家对这个项目的喜爱和关心,自从该项目公开以来断断续续有很多人加我好友询问一些基础问题,我也回复过很多,当然了以后也可能会有人问到,为了不再重复回复,我今天专门写一篇文章,详细介绍下如何使用本来早就该写了,一是因为自己平时忙,二是因为太懒惰,一直拖到现在01 项目介绍该项目的原型是自己当初的本科毕业设计,从零开始做的,其中包括硬件原理图、PCB,到后面元器件的焊接、下位机程序编写,上位机程序编写,ZigBee 无线通讯程序编.
2021-04-07 23:07:07
9353
5
原创 客户端以管理员权限运行
阅读本文大概需要 3 分钟管理员权限可能大家也比较熟悉,某些软件在运行的时候会弹出安全提示,提示是否以管理员权限运行,点击确定后才能正常运行随着 Windows 系统的的升级,在 Window 7以上的系统中,我们要读写某些特殊位置可能需要管理员权限,否则会导致读写失败,比如注册表的读写,因此在这种情况下我们需要启动时就要获取管理员权限给程序设置管理员权限只需要设置应用程序清单配置即可场景描述上周五使用 Qt 的打包工具打包一个客户端,打包完成后一切都正常,唯独写注册表失败,发现失败的几台电脑.
2021-03-02 15:28:14
330
原创 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
424
原创 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
777
原创 如何给程序添加版本号
阅读本文需要3分钟自己亲手编译过 Qt Creator 源码的朋友都有这样的疑惑,为啥编译完成后最终生成的动态库、插件以及 exe 都会带数字 4 后缀,下面记录下如何出现以及如何解决Aggregationd4.dll一般我们在构建程序时一个简单的工程 pro 是这样的TEMPLATE = appTARGET = $$IDE_APP_TARGETDESTDIR = $$IDE_BIN_PATHQT = coreHEADER += \ ...SOURCE += \ .
2020-11-18 20:28:30
1510
2
原创 qmake奇淫技巧之字符串宏定义
阅读本文大概需要3.3分钟我们平时在软件开发过程中需要定义一些宏,以便在代码中调用,这样每次不需要修改代码,只需要修改外部编译命令就可以得到想要的参数,非常方便比如我们想在软件介绍中显示软件版本,让别人知道当前使用的软件是那个版本,一般会怎么做呢?直接在代码中写死,版本号是多少从外部配置读取显示编译的时候通过编译条件读取,然后代码中读取对应变量值今天看看平时使用最多的 Qt Creator 是怎么处理的随便打开 Qt Creator的关于软件可以看到通过阅读源码就可以很清楚的知道,.
2020-11-01 15:13:46
1885
1
原创 Gitee(码云)实现免费 Markdown 图床
阅读本文大概需要 6 分钟前言Markdown是一种易于上手的轻量级标记语言,由于其目的在于注重文字内容而不是排版,目前很受大家欢迎,写完一篇文档可以直接复制到其他各大平台上,不用担心格式字体等混乱问题但是文章中如果引用了某个地址的图片,那么当在其他平台上展示时可能有些不支持,导致图片无法显示,要解决这个问题就需要一个图床了图床介绍图床 简单说就是一个存放图片的网盘,当我们上传某张图片到图床后,会有一个公有的图片地址,这个时候只要我们在Markdown中插入这地址就可以显示图片了七牛云又.
2020-09-13 22:49:28
848
原创 Dicom 基本知识-数据结构篇
阅读本文大概需要6分钟'DICOM’数据是医疗影像的关键,一个.dcm 文件保存了单次诊断的全部信息(病人信息+图像数据),通过读取解析.dcm文件可以获取所有信息。DICOM文件结构打开任意一个.dcm文件,使用16进制打开,可以看到如下结构:导言导言部分128字节,可以直接跳过。前缀前缀标识的一个dicm文件,总共4个字节。数据元素在前缀后面就是真正的数据...
2020-01-14 21:38:07
14206
原创 C++ 序列化库 Cereal使用(二)
阅读本文大概需要3分钟cereal进阶上一篇介绍了 cereal基本用法,可以满足基础的需求了,这里记录下一些注意事项.序列化函数在外部情况时,必须确保序列化函数和class在同一个变量域中比如:bool QDicomFilePrivate::loadDicomTagToFile(const QString &strFile){ CHECK_POINTER_BOO...
2019-12-17 22:14:20
1861
原创 Dicom 基本知识-开篇
阅读本文大概需要 6 分钟read-2DDicom简介DICOM是Digital Imaging and Communications in Medicine的英文缩写,即医学数字成像和通信标准。是ACR(American College of Radiology,美国放射学会)和NEMA(National Electrical Manufactorers Association,国家电...
2019-12-16 21:19:29
1284
原创 C++ 序列化库 Cereal使用(一)
cereal 介绍Cereal 是一个head only开源的C++11序列化库,支持自定义数据类型序列化成JSON,XML,二进制压缩,反之也可以反序列化。几乎不依赖于其他第三方库(RapidJson,RadidXml),方便快速。下载由于是开源项目,直接在Github上可以下载最新版本.git clone git@github.com:USCiLab/cereal.git使用...
2019-11-05 20:29:43
11085
2
原创 Qt-Installer-Framework使用二
Qt-Installer-Framework使用二上一篇文章记录了QIFW基本的使用,下面说说一些个性化配置功能.打包结构说明基本结构如下所示:主要包含两部分,config 和 packages.config 目录主要放置一些打包软件的整体配置,比如打包后安装过程中显示的软件名称、版本号、公司名称、界面图标等等信息;packages 目录主要配置每个安装组件的信息。组件化安装配置是 ...
2019-10-01 12:25:58
654
原创 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
630
原创 关于Qt5.12安装后,无法启动Qt Creator问题,ntdll.dll异常
关于Qt5.12安装后,无法启动Qt Creator问题尽管 Qt5.12 在这个月初就已经发布了,最近忙,刚好今天周末有点时间,体验下最新版本,结果安装完成后 Qt Creator 无法启动, 在此记录下处理问题的过程吧。问题描述安装完成后,启动 Qt Creator ,提示如下问题:提示已经很清楚了,启动时 ntdll.dll 模块故障。解决办法开始傻傻的以为自己安装的 Q...
2018-12-22 18:13:17
6276
3
原创 2018重新开始,加油
2018重新开始只能说时间过的好快,看了下自己优快云目前最新的博文,时间是2017.3.16,快一年了,现在又重新回到这里开始我的博文之路。在这过去的一年里,我都干了些什么?其实博客还是在写,只是没有那么正式而已,只能说是一份笔记罢了,详细的地址在这里http://kevinlq.com/.博客搭建在github上。技术在于分享交流,可能github上写博客方便了自己,但是不利于交流...
2018-02-23 20:13:32
717
2
原创 Qt程序在linux编译出现[file*** has modification time 3.8e+04s in the furure]问题
Qt程序在linux编译出现[file*** has modification time 3.8e+04s in the furure]问题 今天测试一份之前在windows下写的代码,构建运行之后便警告一大堆,而且没完没了了。问题描述解决办法眼看警告数目越来越多,我停止了构建。分析下原来是之前在windows写的时间和目前linux系统时间不一致导致的。赶快修改下linux系统时间。执行命令
2017-03-16 13:34:56
2313
原创 OpenCV学习之路之一开发环境搭建(W7+Qt4+opencv2+mingw)
OpenCV学习之路之开发环境搭建(w7+ Qt+opencv2+mingw) 因为项目需要,这段时间开始学习opencv了,不得不说道路还是挺漫长的,之前对这个图形库有所了解,不过都是概念型的,现在要真正应用起来,内心还是挺欣慰的,好了废话不多说了,学习某一门技术搭建环境是必不可少的一件事,opencv的搭建还算不难。 环境:windows7 64b; Qt 4.8.6 ming
2016-12-17 23:27:55
2677
2
原创 ARM平台下利用无线网卡自组网实现三跳通信
ARM平台下利用无线网卡自组网实现三跳通信介绍ARM平台下无线通信一般都是点对点的,这次需求是要实现无线网卡的三跳,即实现A主机发送信息通过B主机中转后在发送给C,不能是直接从A到C,这里就涉及到了一个最基本的路由转发协议。其实早就有了开源的协议-AODV协议,该协议已经能够完美的解决我的需求了。 AODV(Ad hoc On-demand Distance Vector Routing)是一种按
2016-10-04 18:16:56
3969
7
原创 ARM平台下无线网卡的配置
ARM平台下无线网卡的配置前言 看了下上次博客时间,大概是毕业后到目前两个多月了没有更新博客,突然发现自己正在变得越来越懒,这可不是一个好的征兆。除过找工作一个礼拜的时间,算起来已经工作了快2个月了,目前也正在试用期,对工作也慢慢有所适应。曾经在大学听老师说“上班后第一天、第一个礼拜、第一个月都是很难受的”,这次有所体会,慢慢的对周围各种事物熟悉下来也就不会觉得难受了。 ARM平台下无
2016-09-04 21:59:46
3173
原创 基于ZigBee和STM32的智能家居控制系统的设计与实现(五)--终结篇
基于ZigBee和STM32的智能家居控制系统的设计与实现(五)–终结篇说明首先祝贺自己顺利的完成了毕业答辩工作,想起整个过程还是挺让自己感动的。最后还被评为优秀毕业设计,虽然并没有什么luan用,但是,马上毕业了,还是挺让人怀念的。整个资料从第一篇博客说起就说会全部开源的,期间承蒙各位朋友的支持,给与资助,在此感谢了。虽然资料中私人信息删除了一些,但是不免有疏漏,所以有关个人信息还挺各位删除掉,小
2016-06-27 00:18:01
37252
55
原创 基于ZigBee和STM32的智能家居控制系统的设计与实现(四)
简述在前几篇博客中介绍了智能家居系统的整体结构以及各个部分实现原理,感谢好多的朋友前来问候,给与了好多建议与支持,让我有了动力来写这篇博客,这篇博客作为本系统的终结篇,将会介绍剩下的问题。实现原理以下会分别介绍下位机中关键部分的实现技术,包括μC/OS-II多任务实现、串口数据的读取、对数据的解析等。首先看一张下位机整体结构图,这样心里就有了比较清晰的框架了:下位机硬件资源介绍zigbee核心板
2016-05-30 21:08:35
17042
16
原创 使用QGridLayout布局实现翻页效果
使用QGridLayout布局实现翻页效果好长时间没有写博客了,今天抽点时间做点笔记。前端时间刚好有这个需求,对QGridLayout布局实现翻页效果,效果是这样的?上图中是一个点餐系统的菜谱演示效果图。其中使用的布局就是QGridLayout,它的每一个元素都是一个自定义的widget,自定义的widget里边实现了菜谱照片和价格以及名称的显示。网格布局的实现还是直接看代码,代码一看就会懂的。
2016-05-22 14:13:22
6357
原创 基于ZigBee和STM32的智能家居控制系统的设计与实现(三)
基于ZigBee和STM32的智能家居控制系统的设计与实现(三)自从前两篇博客介绍了智能家居系统的基本实现机理后,收到了好多朋友的来信,和我讨论了好多的这方面的知识,在此很高兴,虽然自己做的这个所谓的智能家居看着挺高大上的,其实没有什么了,在内行人眼里都是小儿科。所以如果你是高手,请绕步。对于想要学习这方面知识的小伙伴来说还是有其价值的。这篇博客就来说说界面的问题吧界面的实现打开下位机系统第一版,发
2016-04-06 10:32:14
17103
19
原创 解决虚拟机中无法访问USB串口设备问题
解决虚拟机中无法访问USB串口设备问题使用虚拟机给我们带了的好处就是可以同时操作两个系统,很多时候是很方便的。今天在使用虚拟机中ubuntu系统测试一个串口程序时,遇到一个奇怪的问题,debug提示没有权限:问题描述提示没有权限这个问题可以解决,给这个设别添加权限不就可以了么,但是只能手动进行添加。不知道还有没有其他办法?查看系统USB设备权限,可以很清楚的看到的确这个设别只有root用户才能操作,
2016-03-26 23:38:19
13344
3
原创 VLC-SDK调用学习
VLC-SDK调用学习VLC属于Video LAN开源项目组织中的一款全开源的流媒体服务器和多媒体播放器。作为流媒体服务器,VLC跨平台,支持多操作系统和计算机体系结构;作为多媒体播放器,VLC可以播放多种格式的媒体文件。主要包括有:WMV、ASF、MPG、MP、AVI、H.264等多种常见媒体格式。通过查看官方文档,学习的了下VLC简单的调用接口,实现了一个音乐播放器,其实还是挺简单的。为此特意将
2016-03-24 12:34:15
8125
3
原创 酷狗音乐模仿还在继续之UI界面源码下载
酷狗音乐模仿还在继续之UI界面源码下载前天写了篇关于酷狗音乐UI界面的博客,好多人要源码,想学习下,考虑到目前代码还不是很完整,本来不想放出,是在没有办法,就将目前所实现的界面源码奉献出来吧! 以下是下载地址:源码下载
2016-03-24 12:08:52
3642
LQFramKit 控件集合
2018-12-16
Qt4.8+opencv2环境测试
2017-03-07
利用STM32F103驱动HC-SR04超声波模块
2015-08-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人