- 博客(99)
- 资源 (14)
- 收藏
- 关注
原创 封装CUDA为动态链接库+Qt调用
由于工作需要在Qt中调用CUDA做并行计算,加速算法实现时间,发现有两种方法可以在Qt中调用CUDA代码。第一种是在项目中创建CUDA的cu文件,编写CUDA的核函数给其他的QT代码调用,Qt的代码正常编译,CUDA代码使用nvcc编译器编译。这种方法只要配置一下pro文件就可以了,适合CUDA代码比较少的项目,只需要几个核函数调用CUDA进行一下加速运算,具体方法可以看我的另一篇博客:QT+CUDA 同时编译Qt和CUDA代码工作需要把cuda的代码移植到QT中,和Qt项目一起编译,这里记录一下。
2024-08-27 15:14:45
780
原创 Qt QCustomPlot画色阶图
工作中用到QCustomPlot画曲线图和色阶图,并且在色阶图上添加文字,圆圈或者几条线段画一些图形,这里写个简单的例子把这几个功能记录一下,代码在这里: https://download.csdn.net/download/Sakuya__/89681279https://download.csdn.net/download/Sakuya__/89681279 本文代码效果如下: MainWindow.h MainWindow.cpp
2024-08-27 15:14:17
331
原创 Windows和WSL安装CUDA
我在自己电脑的 Windows 和 WSL 中都安装了CUDA,这两个系统上的 CUDA 互不影响,即使安装的版本不一样也可以,这里记录一下安装的过程。因为版本不同可能会产生很多不同的错误,如支持的显卡架构不同,显卡驱动和显卡兼容性问题。下面是本文环境配置及版本信息:系统: Windows 11和wsl2_ubuntu22.04显卡:3060 (架构:Ampere)显卡驱动:NVIDIA-Linux-x86_64-560.81cuda版本:12.6。
2024-08-16 16:03:33
585
原创 Qt 登录界面
本文代码效果如下: 本文代码:https://download.csdn.net/download/Sakuya__/89607657https://download.csdn.net/download/Sakuya__/89607657LoginTitleBar.h 自定义的透明标题栏LoginTitleBar.cppLogin.h Login.cpp
2024-08-02 12:23:08
413
原创 VS2019 新建项目里没有CUDA选项
首先进入到你的Visual Studio 2019的安装路径下的 D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions(这个路径根据你的个人情况而定,是到你安装VS的目录)。在Visual Studio 2019安装之前,先安装了CUDA Toolkit。这时候有两种办法,一种是把CUDA Toolkit卸载重装,重装的时候,CUDA会自己在Visual Studio中安装扩展。
2024-08-02 11:18:26
468
原创 QThread和std::thread
在 Qt 中, 我们经常会用到多线程,这时候就需要纠结是使用 Qt 的 QThread 还是使用 C++ 标准库的 std::thread。这里记录一下我自己的理解,先介绍一下 QThread 和 std::thread 的使用方法,对比一下他们的不同,最后说一下我理解的应该怎么选择这两种方法。
2024-07-16 23:09:18
675
原创 atof、stof和strtof的用法和区别
atof、stof和strtof是 C++ 和 C 标准库中用于将字符串转换为浮点数的函数,它们有相似的功能,但在使用和细节上并不相同。
2024-07-16 11:01:01
663
原创 Qt QListView自定义树状导航控件
大部分的软件都有多个页面,这时候就需要一个导航栏控件,通过在导航栏中选择某一栏,同时显示对应的页面。本文代码效果如下:本文的导航栏控件基于大佬 feiyangqingyun 的导航栏控件博客做了美化,修复了一些会导致崩溃的bug。本文代码:也可以在这里下载大佬的代码学习:NavListView: Qt 自定义的树形导航控件。
2024-06-11 16:04:50
1110
原创 Visual Studio 使用第三方库管理工具 vcpkg
Windows下开发C/C++程序,少不了用开源的第三方库。比如线性代数和矩阵分析的库eigen,或者图像处理的OpenCV库。虽然这些库都是开源的,但是由于要编译debug和release版本的,32位以及64位的,如果像FFmpeg这种还要考虑是否引用其他开源库的功能,那么编译类型的组合会更多。如此多库的版本,编译和管理起来都十分麻烦。这时候我们就需要一个库管理工具,来管理我们所有的第三方库了。这里使用vcpkg集成到Visual Studio中。自动下载开源库源代码。
2024-06-11 01:41:28
2096
原创 Linux源码编译安装MySQL + Qt连接MySQL
并把MySQL安装路径下的lib文件夹里的libmysqlclient.so相关的3个库文件都复制到/usr/lib文件夹下。由于在QT5的版本中移除了MySQL数据库驱动libqsqlmysql.so,因此我们需要重新编译QT源码中的MySQL驱动,以生成libqsqlmysql.so。--datadir=/data/mysql/ #<---数据库文件路径。--basedir=/usr/local/MySQL #<---数据库安装路径。
2024-05-28 15:10:29
1270
原创 3D Gaussian Splatting复现
最近3D Gaussian Splatting很火,网上有很多复现过程,大部分都是在Windows上的。Linux上配置环境会方便简单一点,这里记录一下我在Linux上复现的过程。
2024-01-04 10:19:18
11495
18
原创 Linux 编译安装colmap
COLMAP可以作为独立的app,通过命令行或者图形交互界面使用,也可以作为一个库被包含到其他源代码中。这里记录一下编译安装colmap的过程,首先需要安装好CUDA,CUDA具体安装过程这里就不赘述了。
2023-12-03 19:33:25
4754
7
原创 QtConcurrent和QFuture的使用
Concurrent是并发的意思,而QtConcurrent同std一样,是一个命名空间(namespace),想使用它需要先在Project工程文件中导入模块,并包含头文件QtConcurrent提供了一些高级的 API,使得在编写多线程的时候,无需使用低级线程原语,如读写锁,等待条件或信号。使用QtConcurrent编写的程序会根据可用的处理器内核数自动调整使用的线程数。QtConcurrent中使用最多的是它的run()函数,每调用一次函数,就会新建立一个线程运行我们让它执行的函数。
2023-08-29 14:38:06
949
原创 QMap或结构体根据value排序
QMap是Qt的一个关联式容器,可以用于存储键值对,并提供了快速的查找和访问方式。当我们向QMap中插入元素时,默认按照键值对的大小升序排序。如果我们现在有一个这样一个需求,QMap<QString, double> map,存储的数据为名字对应值,如:(apple, 12.2),(orange, 23.3),(banana, 10.5)。
2023-08-25 14:19:50
815
原创 Linux 源码编译SVN
SVN源码包下载(我这里下载的是1.14.2版本)apr源码包(我这里下载的是1.7.2版本)apr-util源码包(我这里下载的是1.6.3版本)expat源码包(我这里下载的是2.5.0版本)SCons源码包(我这里下载的是2.4.1版本,高版本的需要用Python3编译,编译成功了还会有其他问题,所以没用最新的版本)Python的setuptools源码包版本(使用Python安装SCons时需要的模块,如果安装过了就不需要再安装)serf源码包(我这里下载的是1.3.9版本)
2023-02-07 01:01:00
1398
1
原创 Linux Qt连接达梦数据库
最近因为工作需要,需要使用Qt连接达梦数据库,在Linux上比较麻烦,首先需要自己编译UnixODBC和Qt的QODBC库,其次还有各种环境配置。这里在安装好后记录一下,以后找起来方便。
2022-12-18 03:01:36
6400
原创 银河麒麟V10 + 飞腾CPU编译安装 Qt5.9.9
在任意空闲位置新建文件夹,并将源码包放到该目录下。(这里在/home目录下新建名为Qt_Source的文件夹,注:该目录所在位置的空闲空间应大于等于15G)。
2022-12-09 16:56:41
9683
5
原创 UE 调试技巧
想要查找到某个UI对应的UMG文件在哪选择 Tool→Debug→Widget Reflector,点击后会弹出来一个窗口,点击 Pick Hit 按钮后,把鼠标放到游戏运行时显示出来的UI界面中,放在哪个控件上面就会显示出这个控件所在的UMG文件是什么名字,并找到对应的UMG文件。在蓝图中找到弃用函数并删除一般我们在C++中需要删除的函数,都会先加上弃用标记,然后在蓝图中找到这些弃用的函数被调用地方,替换成新的函数接口。确保蓝图中没有再使用弃用函数后,再在C...
2022-05-25 11:42:42
1747
原创 QT 读Excel表格
#ifndef UICOMMONMODULE_AXEXCELFUNCTION_H#define UICOMMONMODULE_AXEXCELFUNCTION_H#include "UI/ComDefined.h"#include <QObject>#include <QColor>class QAxObject;namespace UICommonMdl{ typedef enum { AX_EXCEL_NULL = 0, //EXCEL未存在 AX.
2022-04-13 11:27:22
763
原创 UE GamePlay学习笔记
初学UE就一直对其中的基本类有一些问题,UE中的ACtor、Pawn、Character、Controller、PlayerController这些究竟是什么?他们的作用是什么?应该在用在什么地方?最近学习了大钊老师的GamePlay框架讲解,在这里记录一下。 参考:https://www.bilibili.com/video/BV1ED4y1D7Sf https://zhuanlan.zhihu.com/p/22833151Actor:...
2022-03-29 12:32:37
3268
原创 UE DataTable - 数据表
一、DataTable 是什么DataTable 就是数据表(以下简称 DT),也就是一个二维的 M 行 N 列的矩阵,如下图所示就是一个七行六列的数据表:程序可以通过策划配置的数据表找到对应关系做相应的逻辑,对策划很友好。...
2022-03-28 19:06:18
4868
3
原创 虚幻引擎 遇到的问题总结
C4458:declaration of "xxx" hides class member 这个错误是由于声明的变量在其他头文件里(UE自带的)有同名的变量了,类的内层的作用域与外层作用域中同名的变量会隐藏外层的同名变量,导致报这个错误。不是语法的错误,换一个变量名就不会出现这个错误了。...
2022-02-12 00:28:45
6223
3
原创 UE 在C++中生成一个基于蓝图的Actor
简介在UE4游戏场景中看到的所有对象皆是Actor,而Actor复杂的功能是由许多不同的Component共同实现的。Actor是Object的基类,它是一个可以放置或生成在世界中的对象。当我们想要在场景中创建一个物体时,先要创建一个继承于Actor的C++类,再基于该C++类创建蓝图类,然后只要把这个蓝图拖进场景中就可以了。那我们如果想要使用代码在场景中批量生成已经创建好的蓝图,也就是动态创建该怎么办呢?代码实现首先在头文件中声明要创建的...
2022-02-08 16:06:35
3889
原创 C++容器 vector
介绍vector 容器是STL中最常用的容器之一,它和 array 容器非常类似,都可以看做是对C++普通数组的“升级版”。不同之处在于,array 实现的是静态数组(容量固定的数组),而 vector 实现的是一个动态数组,即可以进行元素的插入和删除,在此过程中,vector 会动态调整所占用的内存空间,整个过程无需人工干预。vector 常被称为向量容器,因为该容器擅长在尾部插入或删除元素,在常量时间内就可以完成,时间复杂度为O(1)。而对于在容器头部或者中部...
2022-01-31 13:51:38
3098
原创 C++ stringstream
简介在做LeetCode算法题的时候看到有使用stringstream类处理字符串,自己对这个类不是很了解,查了资料在这里记录一下。首先,需要包含头文件<sstream>,在标准库中:#include <sstream><sstream> 定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作。本文以 stringstre...
2022-01-30 21:59:29
12218
4
原创 C++容器 pair
介绍std::pair是一个类模板,它提供了一种将两个异构对象存储为一个单元的方法。pair由< 键 , 值 >构成的“键值对”数据类型,每行都表示一个键值对,其中第一个元素作为键(key),第二个元素作为值(value),例如:<"C++", "C++ Primer Plus"><"Python", "Python机器学习及实践"><"Java", "Java语言程序设计">初始化pair类型对象...
2022-01-28 18:36:02
5833
原创 Ubuntu 安装Docker和Pythorch
背景实验室有两台空闲的RTX2070super,所以想把一台改成GPU服务器,能让多人共同使用GPU资源而不相互干扰,同时系统资源分配比较灵活。经过一番踩坑,终于搭建了成功了,这里记录一下搭建的步骤。服务器配置CPU: I7-9700K 主板: 微星Z390 gaming pro carbon 内存: 海盗船16G DDR4 3200MHZ x4 固态: Intel 760P 1T NVME固态 机械: 希捷2T 显卡: 2070Super安装步骤1.安装...
2021-12-11 14:30:19
1315
原创 在VSCode中使用Pytorch遇到的问题
按教程在VSCode中输入代码,提示缺少模块,于是在终端中安装缺少的模块,发现在VSCode的终端中激活不了conda的虚拟环境。由于VSCode的终端使用的是PowerShell,于是我直接打开PowerShell,发现果然在PowerShell中也不能激活conda的虚拟环境。上网查了查发现是因为PowerShell并不支持切换conda的虚拟环境,但是可以通过初始化的方法对终端进行设置,这里记录一下。使用管理员权限打开powershell,执......
2021-10-21 16:11:48
5897
11
原创 用Anaconda安装PyTorch
简介Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。PyTorch是一个开源的Python机器学习库,基于Torch,其底层和Torch框架一样,但是使用Python重新写了很多内容,不仅更加灵活,支持动态图,而且提供了Python接口。是一个以Python优先的深度学习框架,不仅能...
2021-10-21 11:44:24
711
原创 Unity3D 协程
简介什么是协程?unity协程是一个能够暂停协程执行,暂停后立即返回主函数,执行主函数剩余的部分,直到中断指令完成后,从中断指令的下一行继续执行协程剩余的函数。函数体全部执行完成,协程结束。由于中断指令的出现,使得可以将一个函数分割到多个帧里去执行。协程和线程的区别?线程是利用多核达到真正的并行计算,缺点是会有大量的锁、切换、等待的问题,而协程是非抢占式,需要用户自己释放使用权来切换到其他协程, 因此同一时间其实只有一个协程拥有运行权, 相当于单线程的能力。协...
2021-09-28 18:41:13
1097
原创 Unity3D 调用其他脚本函数方法
第一种,被调用脚本函数为static类型,调用时直接用 脚本名.函数名()第二种,GameObject.Find("脚本所在的物体的名字").SendMessage("函数名"); //能调用public和private类型函数第三种,GameObject.Find("脚本所在的物体的名字").GetComponent<脚本名>().函数名(); //只能调用public类型函数...
2021-09-24 17:41:17
22583
5
原创 Unity3D 资源加载 Resources.Load
在unity中,一般声音、预制体、材质以及其他各种资源的加载都可以使用拖拽的方式,在组件界面里把资源拖进去即可。但是有时我们也会想要在脚本中加载资源,或者对资源进行统一管理,这时候我们就可以使用Unity提供的资源加载函数——Resources.Load。加载资源(返回一个泛型对象):var 变量= Resources.Load<T>("Resources文件夹下的文件路径");...
2021-09-02 01:07:33
3243
原创 UE 宏定义GENERATED_BODY
在学习UE4的时候,看到C++工程中,在实现父类的BeginPlay()和Tick()以及SetupPlayerInputComponent()这些虚函数时,都能看到里面有用到Super类型,如下:// Called when the game starts or when spawnedvoid AMyActor::BeginPlay(){ Super::BeginPlay(); }// Called every framevoid AMyActor::Tick(floa...
2021-08-09 02:03:28
1265
QCustomPlot使用示例
2024-08-27
自己用Qt写的一个美化的登录界面
2024-08-02
MicAudioGatherDlg.zip
2021-02-09
opensll_lib.rar
2021-01-28
QT socket通信.zip
2020-07-18
Internationalization.zip
2020-05-09
C#读写三菱PLC和西门子PLC数据程序(源代码)
2019-05-10
QT 串口通信助手
2019-04-03
QT TableView自定义委托
2019-03-29
QT 串口通讯助手
2019-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人