目录—Qt项目总结 一、记录Qt项目总结专栏的目录,方便大家检索本文可能更新没那么及时,具体文字以专栏其他文章发布为主。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。
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。
PCL安装与配置(PCL1.9.1+MSVC2017) 为了和我的VS的版本VS 2017对应,PCL下载的也是msvc_2017,PCL msvc2017最新的则是1.901版本,我们就以PCL 1.9.1为例了。(如果你的vs是2019和2022,一定要注意PCL的版本)。
Qt 软件界面点击QCombBox控件,造成整个界面移位 最近项目中,遇到了一个问题,在绘制界面的时候,使用了QCombBox控件,在点击QCombBox控件下拉中的item时,会造成整个界面移位的现象。在结合leftButton点击事件,我们可以把这个动作给过滤掉,这样就不会造成点击QCombBox,界面出现移位的现象了。如果焦点或光标在该控件上就返回true,否则就返回false。拖放事件过程中是没有更新值的。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。我重写了下面三个事件函数,来实现我的界面拖动效果。
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
Qt动态调用(外部调用)SDK库(dll动态库) 之前的文章,里面介绍的调用方式就是静态的调用方式。如下图所示,需要提供.h文件,dll文件和lib文件。我们以vs2015创建一个dll库,然后通过Qt MinGW编译器来动态调用这个库。同时,EXTERN_C表示防止生成的dll代码在其他编译器使用时可能会被改变。本篇文章主要实现通过一个dll文件,外部动态调用的方式来调用我们的sdk库。之前的文章,介绍了Qt调用sdk库的方式,大家可以点击查看(1、创建一个dll库的工程,并命名为AddExample。我们要注意:一定要添加如下代码,表示要导出函数。
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几种。不透明类型,专门用来进行纹理采样的相关操作。
C#调用C++封装的SDK库(dll动态库)——下 我们可以采用类似的处理方式,通过创建一个实例函数指针的方式,来通过这个实例作为一个参数来调用累的成员函数。在属性页,C/C++->预处理器->预处理器定义,添加DLLCALCULATION_EXPORTS。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。1、我们创建一个DLL的动态库工程,命名CalculationDLL。上一篇我们相当于封装的是C语言风格的动态dll库,供C#来调用的。如果我们要封装的是下面的类呢?在项目中添加一个Calculation类。
C#调用C++封装的SDK库(dll动态库)——上 要把VS创建的DLL动态库,给C#代码来调用(并且我的动态库中还包含我的计算类)C#调用C++封装的SDK库(dll动态库)本篇文章就介绍如何来封装,并提供调用。但是,我遇到了一个场景:需要把VS创建的DLL动态库,给C#代码来调用(并且我的动态库中还包含我的计算类)。本篇文章就介绍如何来封装,并提供调用。
SDK(动态链接库dll)的封装技巧 Pimpl是“pointer to implementation”的缩写,目的就是避免在头文件中暴露私有细节。Pimpl是C++ 在构建导出库接口时特有的技术手段。 即是将类中所有私有变量以及私有方法,封装在一单独的实现私有类中。我们在类中通过一指向私有类的私有指针,访问这些私有数据。而私有类的具体定义和实现,放入cpp文件中。