自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cain Xcy的博客

大道至简

  • 博客(165)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 【QML】自定义控件ImageButton

QML 自定义控件封装与使用

2023-11-16 17:23:33 457

原创 【QT】元对象系统学习笔记(二)

属性系统、信号与槽、对象树、生命周期

2023-07-19 17:41:07 976

原创 【QT】元对象系统学习笔记(一)

元对象系统、反射机制

2023-07-17 17:16:15 570

原创 【QT/OpenCV】QT实现张正友相机标定

在使用该函数进行标定运算之前,需要对棋盘上每一个内角点的空间坐标系的位置坐标进行初始化,标定的结果是生成相机的内参矩阵cameraMatrix、相机的5个畸变系数distCoeffs,另外每张图像都会生成属于自己的平移向量和旋转向量。如上我们知道三维到二维是通过成像的原理,那么这个过程中就会因为相机的出厂参数、或者畸变参数导致成像的图像跟原始图像差距很大,标定就是为了确定这些参数,然后将要处理实际工作时,通过这些参数将图像校正OK。即: 用简单的数学模型来表达复杂的成像过程,并且求出成像的反过程。

2023-07-13 15:42:47 1713 4

原创 【QT】QT搭建OpenCV环境

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。QT的安装这里不做介绍,傻瓜式安装,只是在选择模块的时候,如果内存足够就全部勾选,如果内存不够,以后用到需要的模块时可能就比较麻烦,这点是不如VS的,可以追加下载,QT我研究过,没搞出来,都是重新安装的。

2023-07-10 17:59:08 6095

原创 【QT】QtXlsx安装使用

QtXlsx是一个可以读取和写入Excel文件的库。它不需要Microsoft Excel,可以在Qt5支持的任何平台上使用。这里一定是需要QT5支持的。生成一个新的 .xlsx 文件从现有的 .xlsx 文件中提取数据编辑现有的 .xlsx 文件区别于QAxObject不同的是,QAxObject需要WPS或者Office控件的支持,而且读写有卡顿,若是电脑上安装了PDF工具,也有可能会在调用的时候出现一些非正常错误。

2023-07-07 18:28:54 1904

原创 【QT】QCustomPlot开发笔记

QCustomPlot 是一个用于科学绘图的 QT 第三方库,可以用于常见的二维图像绘制,比如函数曲线、参数方程曲线、热力图、柱状图、箱线图、极坐标绘图等。该库由德国人 Emanuel Eichhammer 开发,经历了多次版本迭代,支持跨平台,开源遵循 GNU GPL 协议,也可以联系作者获得该库的商业许可证(Commercial License)。

2023-07-06 17:14:01 1618

原创 【OpenCV】浅谈 Mat 类

Mat 类是一个用于保存图像数据或者矩阵数据的数据结构,可以说是一个矩阵类, 在OpenCV 1.0时代,存储图像数据都是使用C语言中的一个结构体IplImage,很麻烦的是IplImage需要在程序结束的时候手动释放内存,就跟我们现在malloc过来的堆区空间一样。不过随着OpenCV版本的更新迭代,Mat类的出现非常便捷的解决了这个问题。Mat类用来保存矩阵类型的数据信息,包括向量、矩阵、灰度或彩色图像等数据。Mat类分为矩阵头和指向存储数据的矩阵指针两部分。

2023-06-26 19:06:06 2904

原创 【QT/OpenCV】Qt创建并发布OpenCV dll项目

tips: OpenCV的版本不一定要跟我一样,但是版本之间可能会有些接口或者使用方法已经被更改,会导致使用后期关于我自己写的OpenCV的文章会有一些地方不能通用,望悉知!tips:这里.pro中还配置了OpenCV的配置是因为我之前用这个项目做图形测试,所以保留了这个项目的部分接口,理论来说,用库的方式调用,这里只需要包含。tips: OpenCV的配置及两个目录的由来请参考其他博主的QT配置OpenCV的博客,很基础的东西,这里不做介绍了。这里路径是库的生成路径,即Relese目录下的dll库路径。

2023-06-12 17:09:34 1484 1

原创 【OpenCV】关于OpenCV中imread/imwrite/imshow/cvtColor等 Api的简单描述和使用

imread函数是OpenCV中的一个函数,用于从文件中读取图像。该函数支持读取多种图像格式,包括BMP、JPEG、PNG、TIF等常见格式。

2023-06-05 18:14:56 2261 2

原创 【OpenCV】OpenCV4.7.0 + Visual Studio 2019环境配置 + 运行opencv

当把上面这个下载下来之后,会得到一个opencv-4.7.0-windows.exe,我们双击运行,等待程序自己执行完成,就会在exe当前目录下面生成一个同exe名字的文件夹。这个整个文件夹到时候都需要打包去项目,或者你固定一个目录,自己项目做链接也可以,这一步是必须得,不然项目里面引用是会报错的。到这里,opencv基础配置和运行图片就ok了,刚接触opencv,有问题,后续一起交流。然后到这里,Visual Studio 2019这边也配置结束了,试一试接口测试。然后确定确定确定,完成啦!

2023-06-01 16:23:04 2116 1

原创 【QML】备注留言界面

程序DialogBox .qml 和 VirtualKey.qml 是其他程序员写的,UserRemarksHistoryPopup.qml 是我自己写的,由于承上启下,的原因,一个完整的界面所涉及的板块都记录下来,方便日后学习。需要的可以联系我,不用积分,但是上传好像不设置不给过,QQ:1012569730。虚拟键盘源QML: VirtualKey.qml。

2023-04-27 20:28:57 166 1

原创 【QML】关于图片与comboBox和ListView的一些问题总结

ListView上下拖动出现白色空白区域问题。关于使用canvas绘画一个下拉箭头和左向箭头。关于图片加载进来,修改大小,不满足比例?关于设置图片的颜色问题。

2023-04-25 15:43:46 297

原创 【QML】锚布局

锚布局

2023-03-06 16:29:06 519

原创 C++与Qml数据交互

C++与QML数据交互

2022-12-12 16:25:42 644

原创 【MFC】对话框滚动条类的基类的封装

目录01、滚动条类1.1、SCROLLINFO结构1.2、设置滑块的位置1.3、设置最大值和最小值1.4、获取滚动条的参数,包括滚动条位置的最小值、最大值,页面大小,滚动按钮的位置1.5、设置滚动条的参数(同上)1.6、获取滚动块的最大位置02、基类设计2.1、ScrollDialog.h2.2、ScrollDialog.cpp01、滚动条类滚动条是 CScrollBar 类的对象,是 Windows 应用程序中一个很重要的控件,通常附在对话框上用来协助观察数据或确定位置,也可以用来作为数据输入的工具

2021-08-28 18:08:20 560

原创 【MFC】对话框支持滚动条功能

文章目录01、需求分析02、具体实现03、小结01、需求分析关于MFC支持滚动条、停靠,在以前也是在一些控件的基础上增加过、比如:RichEdit2、Edit Control等。最近,想要做一种通用的模板,方便以后在已有的基础上拓展、迭代,借鉴了某些软件的一些功能模块,然后其中就有一个需要解决的问题,如果对话框足够大,页面显示不全就必须支持滚动条,而对话框的滚动条与某些控件支持的滚动条又不太一样。这里介绍一种方法,通过对话框基类中的消息函数实现。02、具体实现这里的消息函数是可以支持垂直的滚动

2021-08-27 11:14:50 3327 1

原创 【C++】Windows API 串口通讯通用类源码

文章目录01、串口通讯02、 CreateFile API03、串口通讯Demo01、串口通讯在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。RS232通信协议是目前最常用的一种全双工点对点式的异步串行通信协议接口标准。RS232接口标准由于出现较早,所以其目前存在很多问题。接口电平值较高,易损坏接口电路的芯片。传输速率较低,大约为20Kbps;传输距离较短,大约为15米左右。接口由三根线TX、RX、GND组成,没有构成差分线

2021-08-02 10:09:42 1756

原创 【C++】浅谈强制类型转换(4种)

文章目录01、C风格类型转换02、C++ 四种强制转换类型函数2.1、 static_cast2.2、 const_cast2.3、 reinterpret_cast2.4、dynamic_cast03、总结01、C风格类型转换在学习C语言的时候,很多场合,我们会用到强制类型转换,那个时候,我们是很少考虑这样做是否有问题的,因为这就是C语言不好的地方,什么都可以交给我们处理,因此,错误千奇百怪。C风格的强制转换(Type Cast)容易理解,不管什么类型的转换都可以使用使用下面的方式.int n

2021-07-28 18:02:35 1834

原创 【MFC】MFC基础类——CString(使用心得)

文章目录01、CString类介绍02、常见函数表03、CString类成员函数示例3.1、CString(构造函数)3.2、GetLength3.3、IsEmpty3.4、Empty3.5、GetAt3.6、SetAt3.7、Compare3.8、CompareNoCase3.9、Mid、Right、Left3.10、Find、FindOneOf3.11、MakeUpper、MakeLower、MakeReverse3.12、Replace3.13、Delete、Insert、Remove3.14、For

2021-07-26 17:06:56 21664 9

原创 【C++】C++ 中libcurl以POST方式发送数据测试(可json发送)

文章目录01、libcurl介绍02、libcurl测试01、libcurl介绍关于libcurl的介绍,我写过一篇博客,不清楚的可以转过去瞧瞧:2019配置Http协议、libcurl第三方库进行POST通讯02、libcurl测试按照上面博客中的方式做完之后,我们就能写一个小项目测试一下效果了,我们以百度为例,测试抓取:https://www.baidu.com/此网站的内容。引用官网的一个实例步骤为原模板/****************************************

2021-06-21 16:49:14 981 9

原创 【Linux基础编程】Linux配置vimplus(超级强大的神之编译器)

目录01、vim由来与介绍02、vimの6种基本模式03、vimの5种派生模式04、安装vim/vimplus4.1、安装vim4.2、安装vimplus(重点)4.3、vimplus快捷键4.4、vim插件列表4.5、关于下载vimplus之后遇到的问题05、附录01、vim由来与介绍Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。Vim的第一个版本由布莱姆·米勒在1991年发布

2021-05-20 19:45:49 1046 7

原创 【C++】C++操作jsoncpp(写、读、解析)+jsoncpp从0到1配置步骤

章节目录前言01、json文件介绍1.1、json简介1.2、json优势02、C++ 操作 jsoncpp(读、写、解析)前言json文件是比较轻量级的文件,格式简单,使用方便。用来存放信息相比其他方式有自己得天独厚的优势。今天给大家分享的是如何利用C++来操作json文件。如果你知道如何使用jsoncpp类库,可以不用看附录,如果第一次使用,请先到最后,将环境配置好,再进行操作。01、json文件介绍1.1、json简介JSON(JavaScript Object Notation, JS

2021-05-14 16:42:24 12305 14

原创 【C++】C++中防止头文件重复包含的两种方法

文章目录01、错误分析:类型重定义(头文件重复包含)02、解决方案2.1、微软宏2.2、条件编译2.3、两种方法比较03、变量被重复包含3.1、解决办法04、版权声明&总结01、错误分析:类型重定义(头文件重复包含)现象:#include文件的一 个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#include "Index.h"#include "Index.h"//当前实际开发中没人会这么写程序,但是我们换一种写法常犯错误如下://#inclu

2021-05-13 20:38:25 5978 17

原创 【C/C++】浅谈C/C++中函数指针与回调函数

目录01、函数指针1.1、函数指针定义1.2、函数指针的定义形式1.3、函数指针与typedef02、回调函数2.1、回调函数定义2.2、回调函数的使用场景03、实例重释04、总结01、函数指针1.1、函数指针定义一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用该函数。这种指针就是函数指针。简言之:函数指针

2021-05-12 18:15:14 859 17

原创 【网络通讯】libcurl编译相关补充

目录01、VS与VC版本号对应关系02、libcurl静态编译与动态编译03、关于libcurl库的一点经验分享04、小结01、VS与VC版本号对应关系VS版本VC版本号发布时间VS97VC = 51997-02VS6.0VC = 61998-06VS2002VC = 72002-02-13VS2003VC = 7.12003-04-24VS2005VC = 82005-11-07VS2008VC = 92007-11-19

2021-05-12 14:48:00 132

原创 【网络通讯】2019配置Http协议、libcurl第三方库进行POST通讯。

文章目录01、Http协议介绍1.1、什么是http?1.2、请求方法种类01、Http协议介绍1.1、什么是http?超文本传输协议(HyperText Transfer Protocol – HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议。1.2、请求方法种类http协议我也是第一次接触,根据需求,了解到了http目前共有以下几种请求方法。GET功能:请求响应。GET请求会显示请求指定的资源。一般来说GET方法应该只用于数据的读取。GET会方法请求指定的页面信息,并返回

2021-05-10 15:47:26 479

原创 【C#】C#中的ref、out关键字的应用与区别

目录01、 本文背景02、ref的定义与使用03、out的定义与使用04、ref与out的区别05、小结01、 本文背景原本我是一个地地道道的C/C++开发者,我其实很难想象有一天我会去接触其他语言,因为当初我就是奔着C/C++学完可以打天下,此意并不是说我不想学习,只是不想接触更多的语言,我认为知识的深度比广度更值得付出时间。言归正传!入职之后,一年都是用C++编程、但是最近,公司交给我了一个新任务,接触一个新的项目,这个项目的源代码是其他公司的,只不过被我们的客户买来做二次开发,然后我们公司的板

2021-04-03 16:08:35 1041 2

原创 【Tools】抓包工具——Charles(中名:花瓶)

目录01、Charles介绍02、Charles功能03、使用背景04、Charles下载05、版权声明01、Charles介绍Charles 是在 PC 端常用的网络封包截取工具,在做开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。除了调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。什么叫抓包:Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问

2021-04-02 18:15:09 1697

转载 【STM32】STM32 F4开发板介绍

目录01、STM32F4开发板的资源图02、STM32F4开发板板载资源03、STM32F4部分资源说明3.1、JTAG/SWD3.2、STM32F407ZGT604、声明01、STM32F4开发板的资源图F4开发板图示如下:ALIENTEK 探索者 STM32F4 开发板,资源十分丰富,并把 STM32F407的内部资源发挥到了极致,基本所有 STM32F407 的内部资源,都可以在此开发板上验证,同时扩充丰富的接口和功能模块,整个开发板显得十分大气02、STM32F4开发板板载资源ALIEN

2021-03-19 17:40:32 3114

原创 【C语言】新年第一篇:C语言内存管理

目录新年开工文章01、C语言内存管理图02、内存区域2.1、内存分区2.2、区域说明代码区数据区data区bss区堆区内存映射区栈区内核区(内核空间)03、简单程序区分内存划分04、小结新年开工文章emmm,细细总结去年(从业IT第一年),多多少少还是积累了不少编程的知识,由于长期使用C++,对于内存的理解或多或少有了一点点自己的理解,今年是2021年,也是本命年,争取在工作上有一些大的突破,在学习上有一些小的促进,相辅相成,不至于被行业进程所淘汰。想学习很久的STL也可以在今年慢慢着手去学习了,相较

2021-02-19 17:41:57 223 1

原创 【STL】C++标准模板库——Map

01、文章目录目录01、文章目录02、浅谈Map容器03、Map成员方法表04、成员方法演示示例4.1、begin()02、浅谈Map容器map是STL的一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排

2020-12-29 16:45:21 760 2

原创 【QT编程】QT布局管理

01、目录目录01、目录02、布局管理系统03、布局管理器3.1、基本布局管理器(QBoxLayout)3.2、棚个布局管理器(QGridLayout)3.3、窗体布局管理器(QFormLayout)3.4、综合使用布局管理器04、设置部件大小05、可扩展窗口06、分裂器(QSplitter)07、设置伙伴(buddy)08、Tab键顺序09、布局管理小结02、布局管理系统Qt的布局管理系统提供了强大的机制来自动排列窗口中的所有部件,确保它们有效地使用空间。Qt包含了一组布局管理类,从而在应用程序的用

2020-12-15 16:14:18 1065

原创 【MFC】CListCtrl控件(报表样式)—— 内附自制巅峰查询器V1.0源码

01、目录文章目录01、目录02、CListCtrl 与 样式介绍03、示例程序——《王者荣耀》玩家信息添加04、说明与版权02、CListCtrl 与 样式介绍写这篇文章之前,其实我是有写过一篇CListCtrl的介绍文章的,突然发现,自己写的那篇文章介绍得实在太基础,完全就是介绍一下这个控件,导致自己后面做项目时,这个控件费时很久,以至于这次研究了一下,写了这篇文章,这里关于CListCtrl不做重复介绍,感兴趣可以去了解一下这篇文章:https://blog.csdn.net/m0_434582

2020-11-13 09:38:04 993 1

原创 【Visial Studio疑难杂症】This function or variable may be unsafe.等函数不安全错误

01、问题问题描述如下图:This function or variable may be unsafe:提示函数不安全,不能运行。02、问题分析C 中大多数缓冲区溢出问题可以直接追溯到标准 C 库。最有害的罪魁祸首是不进行自变量检查的、有问题的字符串操作(strcpy、strcat、sprintf 和 gets)。一般来讲,像“避免使用 strcpy()”和“永远不使用 gets()”这样严格的规则接近于这个要求。这些函数由于设计的时候比较淳朴,并没有做任何的越界检测,主要容易"被溢出",只

2020-11-12 16:23:29 279 4

原创 【MFC】文件选择框——CFileDialog类

01、目录目录01、目录02、CFileDialog类03、重要函数 & 多文件实例04、CFileDialog注意事项05、三个栗子06、小结02、CFileDialog类CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能本章的CFileDialog与上一章节所聊的BROWSEINFO结构功能相差不大,但是两者之间略有不同。 一个最本质的区别,一个是MFC类,一个是一种结构,单从功能上,

2020-11-06 18:14:48 2380

原创 【MFC】BROWSEINFO设置路径,支持记忆上次路径

01、目录目录01、目录02、BROWSEINFO结构03、浅谈Windows回调函数04、 BROWSEINFO回调函数05、应用实例06、小结02、BROWSEINFO结构BROWSEINFOW 结构是一种显示文件或者文件夹路径的结构体。作为SHBrowseForFolder()函数的参数。首先看下BROWSEINFO的原型(来自微软官方文档):typedef struct _browseinfoW { HWND hwndOwner; PCIDLIST_ABS

2020-11-04 18:14:34 2361

原创 【MFC\Visial Studio疑难杂症】基于对话框的MFC启动项目生成对话框失败,错误值为-1!

文章目录01、问题02、解决方案03、小结01、问题事情是这样的:在做项目的时候,要做一个小功能,就是打开文件夹,然后将选择的文件夹路径显示在界面控件上,并保存,等待下次启动软件,选择文件夹时,依旧能够定位到当前的目录,另外,我还在测一个关于匿名管道重定向bat脚本执行结果到RichEdit2控件上的问题。界面如下图所示:下面这个白色框框就是RichEdit2控件了。当我定义完变量、改好ID、加载完消息处理函数、写好加载批处理功能时,我想运行看看效果,是否能够正确加载,然后就遇到了如标题所示问题

2020-11-04 15:37:18 706

原创 【MFC】Windows 执行bat批处理并获取其执行结果

01、目录文章目录01、目录02、此文背景故事03、CreatePipe 与 CreateProcess3.1 CreatePipe3.2 CreateProcess04、程序小天地05、小结02、此文背景故事Cain 小熊是深圳市XXXXXX科技有限公司的一名职工,有一天,Beck老大叫Cain 小熊去办公室。Beck老大:Cain 小熊,我们XXX版块的编译器还需要一个功能:支持输出编译结果,失败或者成功都会有执行的结果,你应该能办到吧?Cain 小熊:当然可以(不敢说不可以)Beck老大:

2020-11-04 11:56:35 3976 2

原创 【MFC】进度条:Progress Control控件

01、目录文章目录01、目录02、Progress Control介绍03、Progress Control相关函数04、Progress Control示例4.1 功能:按照固定步长一次增加14.2 功能:按固定步长增加,并动态更新百分比4.3 功能:搭配定时器,动态更新显示进度条05、小结02、Progress Control介绍进度条对于我们而言,想必都很熟悉了,安装软件、游戏加载都会有进度条的身影。今天我们就来学习学习:Progress Control控件——进度条。如下所示:关于

2020-11-03 18:21:31 6618 5

备注图标,及其他图标(图标集)

上传一份本地图标库

2023-04-27

VC++之MFC类库中文手册.zip

VC++之MFC类库中文手册是汇集了MFC所有类、框架、API的一些说明与介绍,类似微软官方的MSDN。

2020-11-24

DuiLib_DuiEditor-master.zip

DuiLib_DuiEditor-master是微软Win32 程序的一些demo和例子,数据比较大

2020-11-24

Notepad3_5.20.915.1_x86.zip

NotePad3_5_20.915.1_x86是上一个资源的32位版本,64位版本已经上传,下载请注意查看版本。

2020-11-24

Notepad3_5.20.915.1_x64.zip

Notepad++的兄弟版本,同样是出至scintilla一脉。对scintilla源码感兴趣的可以下载研究研究

2020-11-24

XCOM V2.6.rar.zip

正点原子 串口调试助手软件XCOM V2.6发布了,欢迎各位网友下载使用。更新记录: 20200518 V2.6更新记录 1,解决了错误提示更新 的bug. 2,解决了错误换行的bug.

2020-08-22

c++讲义基础讲解.doc

C++讲义.doc 衔接上一个资源C语言开发,带你走进面向对象的编程大门,里面注解详细,内容丰富,是入门C++必备资源文档。

2020-06-05

C开发实战.doc(古老的语言)

C开发实战.doc是比较全面的C语言学习文档。 里面涵盖了从C基础语法到进阶,从过程到简单面向对象概念的讲解。

2020-06-05

C# Basic.doc

该C#文档,面向有一定C/C++基础的人群,讲述了C#的基本语法,对于有一定开发经验的人也许显得不是那么有效果,但是对于刚接触IT行业的人,这一定是一个不错的选择,里面包含了例子源码,大家可以手动下载。

2020-06-04

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除