- 博客(125)
- 资源 (9)
- 收藏
- 关注
原创 目录—Qt项目总结
一、记录Qt项目总结专栏的目录,方便大家检索本文可能更新没那么及时,具体文字以专栏其他文章发布为主。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。
2024-08-16 17:09:10 84
原创 VTK8.0.0编译(Qt 5.14.2+VS2017)
本片文章编译VTK 8.0.0主要是为了配合PCL 1.8.1而编译的,因为PCL 1.8.1使用的是VTK8.0版本,但是PCL安装文件夹中提供的VTK8.0不全,和Qt结合使用的时候,会报错。在生成的过程中,需要下载很多MD5相关的文件,可能时间有点长,需要耐心等待下。我的在执行的过程中还报错,如下图所示,是因为这个MD5相关的文件没有下载成功导致的,我们把vtk的文件解压出来,创建vtk-source文件夹,把解压出来的内容放进来。通过百度网盘分享的文件:vtk-v8.0.0 (1).zip。
2024-08-07 08:15:00 251
原创 PCL安装与配置(PCL1.9.1+MSVC2017)
为了和我的VS的版本VS 2017对应,PCL下载的也是msvc_2017,PCL msvc2017最新的则是1.901版本,我们就以PCL 1.9.1为例了。(如果你的vs是2019和2022,一定要注意PCL的版本)。
2024-08-06 08:15:00 280
原创 Qt 软件界面点击QCombBox控件,造成整个界面移位
最近项目中,遇到了一个问题,在绘制界面的时候,使用了QCombBox控件,在点击QCombBox控件下拉中的item时,会造成整个界面移位的现象。在结合leftButton点击事件,我们可以把这个动作给过滤掉,这样就不会造成点击QCombBox,界面出现移位的现象了。如果焦点或光标在该控件上就返回true,否则就返回false。拖放事件过程中是没有更新值的。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。我重写了下面三个事件函数,来实现我的界面拖动效果。
2023-12-20 17:20:13 763 2
原创 Qt 国际化——创建中英文翻译步骤
说明:之前我的csdn博客,第一篇文章发表的就是Qt国际化的文章(点击打开),写的也过于简单了:今天,这篇文章再详细的记录下,中英文翻译的步骤。本片以Qt 5.12.2(编译器MinGW),Qt Creator 4.8.2为例:操作系统为Win 11 64位:Qt对于多语言切换模块提供了专门的工具,Qt Linguist(Qt语言家),我们可以在安装Qt的目录下看到这个工具,它分为32位和64位,如果你的编译器是32位的你翻译的时候就是用32位的Linguist,64位的编译器就对应64位的Linguist
2023-12-20 17:18:18 1433
原创 Qt动态调用(外部调用)SDK库(dll动态库)
之前的文章,里面介绍的调用方式就是静态的调用方式。如下图所示,需要提供.h文件,dll文件和lib文件。我们以vs2015创建一个dll库,然后通过Qt MinGW编译器来动态调用这个库。同时,EXTERN_C表示防止生成的dll代码在其他编译器使用时可能会被改变。本篇文章主要实现通过一个dll文件,外部动态调用的方式来调用我们的sdk库。之前的文章,介绍了Qt调用sdk库的方式,大家可以点击查看(1、创建一个dll库的工程,并命名为AddExample。我们要注意:一定要添加如下代码,表示要导出函数。
2023-06-11 20:42:45 7239
原创 Qt OpenGL(四十二)——Qt OpenGL 核心模式-GLSL(二)
通过上面的图片,我们可以看到,在GLSL语法中,变量分为Transparent type(透明类型)和Opaque type(不透明类型)。冯一川注:GLSL其实也是不断迭代的,比如像3.3版本中,基本数据类型浮点型只支持float型,而GLSL4.0版本开始就有double型数据的支持了,所以本系列GLSL部分以GLSL4.5版本为例介绍。GLSL中,矩阵通常有2×2, 2×3, 2×4, 3×2, 3×3, 3×4, 4×2, 4×3, 和 4×4几种。不透明类型,专门用来进行纹理采样的相关操作。
2023-06-04 14:40:13 1090 2
原创 C#调用C++封装的SDK库(dll动态库)——下
我们可以采用类似的处理方式,通过创建一个实例函数指针的方式,来通过这个实例作为一个参数来调用累的成员函数。在属性页,C/C++->预处理器->预处理器定义,添加DLLCALCULATION_EXPORTS。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。1、我们创建一个DLL的动态库工程,命名CalculationDLL。上一篇我们相当于封装的是C语言风格的动态dll库,供C#来调用的。如果我们要封装的是下面的类呢?在项目中添加一个Calculation类。
2023-04-22 03:45:00 1375 1
原创 C#调用C++封装的SDK库(dll动态库)——上
要把VS创建的DLL动态库,给C#代码来调用(并且我的动态库中还包含我的计算类)C#调用C++封装的SDK库(dll动态库)本篇文章就介绍如何来封装,并提供调用。但是,我遇到了一个场景:需要把VS创建的DLL动态库,给C#代码来调用(并且我的动态库中还包含我的计算类)。本篇文章就介绍如何来封装,并提供调用。
2023-04-21 22:49:55 3218
原创 VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)
操作系统:windows 10 64位VS:vs2022 64位开发语言:C++
2023-04-20 03:30:00 4767
原创 SDK(动态链接库dll)的封装技巧
Pimpl是“pointer to implementation”的缩写,目的就是避免在头文件中暴露私有细节。Pimpl是C++ 在构建导出库接口时特有的技术手段。 即是将类中所有私有变量以及私有方法,封装在一单独的实现私有类中。我们在类中通过一指向私有类的私有指针,访问这些私有数据。而私有类的具体定义和实现,放入cpp文件中。
2023-04-19 07:30:00 2222
原创 Qt创建SDK库(dll动态库)并调用SDK库(dll动态库)
在windows系统中,DLL库提供了API函数的声明和导入库(.lib),而SDK也是提供windows下程序开发所需的文件和工具的“工具包”,SDK包含了使用API所需的资料,所以通常也罢使用API编程来编写windows应用程序的开发方式叫做SDK编程。release模式下,编译成功后,可以在release文件夹下面看到生成的exampleDLL.dll和exampleDLL.lib,至此,动态库编译就结束了,下面我们开始调用。通过上面的一步,我们完成了动态库的创建,现在我们开始调用创建的动态库。
2023-04-18 22:52:50 4655
原创 Qt OpenGL(四十一)——Qt OpenGL 核心模式-GLSL(一)
这意味着色器可以做一些常规程序做不到的事情。在管线的不同阶段运行的着色器也不同。我们主要关注的就是顶点着色器和片段着色器。而着色器则使用被称为“着色器语言”的编程语言编写,着色器语言有很多,OpenGL图形库的着色器语言叫做OpenGL Shading Language,即GLSL。这个语言很像C语言,语法也很相似,我们下一篇继续。但是,你一定要记住一点:着色器就是在GUP显卡上执行的程序。
2023-03-14 15:58:12 583
原创 Qt 串口插拔提示
解决问题:我本人在做项目的时候,在编写一个桌面工具软件时,我想着增加一个串口插拔提示的框,方便使用者判断串口插拔的情况,避免有些情况下串口接触不良导致数据收发收到影响,从而影响团队中的项目进度。今天我们就此解决这个问题。其中包含纯虚函数nativeEventFilte,所以我们在相关的子类中,需要重写这个函数,来实现我们过滤相关事件的目的。在日常的工作中,项目中,我们经常遇到使用串口的通讯的场景,这时候我们可能会对串口的插拔进行提示。比如说:我们实现的是串口的事件,我们需要过滤对应的。
2023-03-06 23:22:40 1017
原创 Qt OpenGL(四十)——Qt OpenGL 核心模式-雷达扫描效果
绘制由给定矩形、startAngle开始角度和spanAngle跨度角度的饼图,饼图有当前设置的画刷填充。startAngle开始角度和spanAngle跨度角度必须是角度的1/16,即整个圆等于5760(16*360),角度正值表示顺时针,角度负值表示逆时针。三点钟方向表示0度。实现这个效果的本质就是使用了Qt的渐变效果,平常的Qt的项目中绘制QPushButton也会使用到渐变效果。drawPie的rectangle坐标和角度,应如下图所示。绘制的函数主要使用QPainter类中的drawPie函数。
2023-02-20 08:45:00 1593 1
原创 Qt OpenGL(三十九)——Qt OpenGL 核心模式-在雷达坐标系中绘制飞行的飞机
严格的来说这部分是Qt的东西,但是,如果拿到OpenGL里面有点牵强,但是,可能我们的小伙伴有时候,会在雷达坐标系中有绘制这个的需求,我也就都放到这个专栏里了,方便需要的小伙伴来参考。在之前绘制完毕雷达显示图之后,这时候,我们能匹配的场景就更广泛了,比如说,我们在雷达图上绘制扫描到的点,或者是一个图形(点组成),或者是一个图片比如一个飞机的图片。基于以上的信息,你可以绘制根据判断条件,绘制不同类型的飞机,只要有相应的图片,你都可以很形象的展示扫描到的物体(静态或者动态的显示)。
2023-02-13 13:33:14 2086 1
原创 Qt OpenGL(三十八)——Qt OpenGL 核心模式-绘制彩色的点
我们可以看到点数彩色的了,只不过我用的是随机生成的,不是指定的。如果使用点云绘制彩色的时候,可能需要相应的项目场景中的算法来生成了。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。加了一组生成rgb颜色的点,这里我使用的是一组随机数,生成随机的颜色。如果,我们需要的点的绘制是彩色的呢?
2023-02-13 08:45:00 890 6
原创 Qt OpenGL(三十七)——Qt OpenGL 核心模式-动态刷新点云
我还是,在上一篇雷达坐标系的基础上,去绘制动态的点,这样雷达扫描的点就能动态实时的显示在坐标系中了,我只是简单的创造了几个点,如果你具体的项目中目标点不同,你自己再调整,我只是告诉你这个动态的点云如何去实现。绘制完这个兔子之后,可能还是不能满足我们的需求,如果我们的需求是绘制一个动态的点云,也就是说数据点是不断刷新的,这个时候才是点云真正的应用场景。上图的点云数据,实际上都是实时刷新的,所以才会有这种效果(你可以忽略图中的颜色,因为不是本篇关注的重点)。我们在绘制点云的时候,使用的代码(在。
2023-02-08 23:20:38 2085
原创 Qt OpenGL(三十六)——Qt OpenGL 核心模式-绘制雷达坐标系
绘制雷达扫描坐标系的方式,你可以简单的这样思考,因为是2维的坐标系统。它就包括xy轴,然后有一圈圈表示距离的外圈,这样来看,绘制这个就很简单了。现在,日常生活中,激光雷达等测距设备已经非常广泛的应用于我们身边了,像送餐机器人、扫地机、服务机器人等,它们可以360度测距。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。这些设备采集的点云数据,对应的显示在雷达坐标系统中,就非常的合适了。有了这样的坐标系统,你就可以在上面绘制目标物了。
2023-02-03 08:45:00 1080
原创 Qt OpenGL(三十五)——Qt OpenGL 核心模式-点云(斯坦福兔子)
是一个数据集,数据集中的每个点代表一组X、Y、Z几何坐标和一个强度值,这个强度值根据物体表面反射率记录返回信号的强度。我以斯坦福兔子为例,来绘制点云。我们在平时的项目中,有的时候会遇到,激光雷达等这些设置采集的数据集,不管是在机器人、扫地机、还是车载激光雷达等设备上,对于测距的的数据的采集,得到的就是点云数据。一川将会在上一篇,三维坐标系的基础上,添加斯坦福兔子的绘制。可以通过鼠标滚轮的滑动对点云数据实现缩放,通过鼠标拖动,实现对三维坐标系和斯坦福兔子进行旋转。本篇绘制简单的点云数据,展示点云的绘制过程。
2023-02-02 08:15:00 2073 6
原创 Qt OpenGL(三十四)——Qt OpenGL 核心模式-旋转三维坐标系
本篇将在上一篇的基础上,让三维坐标系能实现旋转和缩放功能。在这个实现的过程中,用到了OpenGL的变换功能,这个后续,一川打算再单独写一篇,本篇就不介绍这部分了,回头我会把变换的链接贴到本片里。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。
2023-02-01 08:00:00 1326 1
原创 Qt OpenGL(三十三)——Qt OpenGL 核心模式-绘制三维坐标系
在平常的项目中,我们会遇到在界面绘制的时候,展示坐标系的需求。本篇介绍三维坐标系的绘制方法。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。在绘制三维坐标系的时候,可以由三个XYZ坐标轴加上各个坐标轴顶部的棱锥组成。
2023-01-31 23:10:13 3534
原创 Qt OpenGL(三十二)——Qt OpenGL 核心模式-文字
在Qt中使用OpenGL绘制文字,我们可以通过Qt提供的QPainter类来实现在OpenGLWidget界面上绘制我们需要的文字,这也是实现这个功能需求的一种方法。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。
2023-01-30 22:32:25 1599
原创 Qt OpenGL(三十一)——Qt OpenGL 核心模式-纹理三
本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。本篇文章会继续介绍纹理的相关内容。
2023-01-30 22:08:31 325
原创 Qt OpenGL(三十)——Qt OpenGL 核心模式-纹理二(给正方体贴上图片)
通过前两篇文章,我们知道了如何绘制一个正六面体和使用纹理贴图,本篇继续介绍在正方体(正六面体)上进行纹理贴图。同样的对于,一个正方体(正六面体)而言,如果每个面都贴上图片,就相当于给一个三维的物体贴上纹理图片了。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。在核心模式下正方体的纹理贴图有点不一样,但是思路是差不多的。
2023-01-29 23:37:02 793
原创 Qt OpenGL(二十九)——Qt OpenGL 核心模式-纹理(给四边形贴上图片)
如上图所示,我们希望三角形的左下角对应纹理的左下角,因此我们把三角形左下角顶点的纹理坐标设置为(0, 0);也就是说我们把墙纸贴到四边形墙面上,需要确定墙纸的哪个脚对应墙面的哪个脚,如果没有对应好,可能就贴反了。你家房子装修,你想要在不同的房间贴上不同风格的墙纸,有科技感的,有雍容华贵的,还有动漫的等等,此时的墙纸就是我们所说的纹理了。纹理坐标起始于(0, 0),也就是纹理图片的左下角,终始于(1, 1),即纹理图片的右上角。纹理坐标在x和y轴上,范围为0到1之间(注意我们使用的是2D纹理图像)。
2023-01-19 14:55:33 1653
原创 Qt OpenGL(二十八)——Qt OpenGL 核心模式-绘制一个正方体(正六面体)
上一篇在介绍了使用变换矩阵的时候,一川想了想,还是得抽空写一篇变换和介绍GLSL的文章,这样才能把这写文章的知识点串起来。绘制一个正方体,我们可以这样来拆解,就是绘制六个四边形,合在一起就是一个六面体,如果每个四边形组成的面是真方形,那么这个六面体就是一个正方体了。接下来通过纹理图片,就可以完整的看到效果了。上面的代码运行之后,由于是正对着屏幕的设置,看不出来是正方体,所以,我们使用旋转矩阵,让他旋转起来,就能看出来了。截止到上一篇文章,一川想使用Qt封装的类绘制一个旋转的彩色三角形的目标就实现了。
2023-01-18 11:07:30 1322
原创 Qt OpenGL 核心模式版本文章目录
其实,本文应该写在本系列的第一篇,便于需要的小伙伴查阅。所以,现在觉得还是应该补充一篇目录的文章。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。后续本系列更新的文章,我也将在本篇文章里更新目录。
2023-01-08 18:12:24 3103 1
原创 Qt OpenGL(二十七)——Qt OpenGL 核心模式--EBO
上篇文章,一川绘制了能旋转的彩色三角形,在之前也介绍了VAO、VBO。但是EBO这个概念没有介绍,现在经历了,前几篇文章的介绍后,该把VEO这个概念一起在熟悉一下了。在介绍之前,我们绘制一个四边形,绘制四边形和绘制三角形的步骤都是一模一样,只不过点是4个点,glDrawArrays函数的第一个参数,传入的是GL_QUADS。下面是完整的代码。
2022-12-14 23:12:59 1140
原创 Qt OpenGL(二十六)——Qt OpenGL 核心模式-旋转的彩色三角形
上篇文章我们把三角形上色成了,彩色的三角形: 离我们想要绘制的图形,旋转的三角形,又近了一步,本篇文章就让这个彩色的三角形旋转起来。不过从上篇开始使用的代码就是Qt封装的类了,不过也是核心模式的,步骤基本上和前几篇的都一致,你可以认为只不过是使用的函数有点不一样。如果我们要让三角形旋转起来,需要插入一个概念:变换,OpenGL中的变换包括:视图、模型、模型视图、投影、视口等。关于这部分的简单说明,大家可以查看冯一川之前的文章:OpenGL(二)——OpenGL基础知识点(一)OpenGL(三)——OpenG
2022-12-06 22:49:19 1099
原创 Qt OpenGL(二十五)——Qt OpenGL 核心模式-Qt封装的函数实现彩色三角形
上一篇文章我们绘制了彩色的三角形,接下来其实就应该是让这个三角形旋转起来了,但是,旋转起来之前,还是想通过Qt自己的封装类实现彩色的三角形,并且让他旋转起来。这才我(冯一川)是写这个系列的的目的,这样和Qt的代码兼容性更好。 这是上一篇文章中绘制的彩色的三角形,本篇就是使用Qt的方式绘制。不管是否使用Qt封装的类,还是使用OpenGL自己的函数,其本质都是核心模式下的绘制思路,我们先看一下上一篇文章的绘制步骤:绘制函数:步骤,就是上面的step1-11,这些内容。Qt封装的代码主要的有几个:具体
2022-12-05 06:00:00 1047
原创 Qt OpenGL(二十四)——Qt OpenGL 核心模式-实现彩色三角形
要注意的是由于我们知道这个数组是紧密排列的(在两个顶点属性之间没有空隙)我们也可以设置为0来让OpenGL决定具体步长是多少(只有当数值是紧密排列时才可用)。一旦我们有更多的顶点属性,我们就必须更小心地定义每个顶点属性之间的间隔,我们在后面会看到更多的例子(译注: 这个参数的意思简单说就是从这个属性第二次出现的地方到整个数组0位置之间有多少字节)。中,看到了Qt关于OpenGL的例程,是一个旋转的彩色三角形,本篇文章我们就使用OpenGL核心模式,实现这个彩色三角形。和图1动态图的颜色基本是一样的。
2022-11-22 22:12:06 1140
eric6版本17.05.rar
2019-11-10
wheel安装包.rar
2019-11-10
pip命令安装包.rar
2019-11-10
Qt链接mysql5.7所需的libmysql.dll和libmysql.lib文件
2019-01-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人