QTreeView模糊查询 本文代码效果如下:本文代码:https://download.csdn.net/download/Sakuya__/89759410https://download.csdn.net/download/Sakuya__/89759410MainWindow.hMainWindow.cpp
Qt Q_Q和Q_D宏 最近在一些Qt的开源项目中看到有使用到Q_Q和Q_D宏,使用后就可以使用q和d两个指针访问其他类里面的成员变量。好奇这两个宏的作用是什么,就去学习了一番,这里记录一下,防止以后忘记。在最前面,先简单说一下这两个宏是做什么的。它们主要用于实现一种称为d-pointer(或pimpl)的设计模式,这种模式可以隐藏类的实现细节,提高编译效率和二进制兼容性。Q_D宏的主要作用是简化私有数据的访问,Q_Q宏用于在私有实现类中访问公共类的指针。
封装CUDA为动态链接库+Qt调用 由于工作需要在Qt中调用CUDA做并行计算,加速算法实现时间,发现有两种方法可以在Qt中调用CUDA代码。第一种是在项目中创建CUDA的cu文件,编写CUDA的核函数给其他的QT代码调用,Qt的代码正常编译,CUDA代码使用nvcc编译器编译。这种方法只要配置一下pro文件就可以了,适合CUDA代码比较少的项目,只需要几个核函数调用CUDA进行一下加速运算,具体方法可以看我的另一篇博客:QT+CUDA 同时编译Qt和CUDA代码工作需要把cuda的代码移植到QT中,和Qt项目一起编译,这里记录一下。
Qt QCustomPlot画色阶图 工作中用到QCustomPlot画曲线图和色阶图,并且在色阶图上添加文字,圆圈或者几条线段画一些图形,这里写个简单的例子把这几个功能记录一下,代码在这里: https://download.csdn.net/download/Sakuya__/89681279https://download.csdn.net/download/Sakuya__/89681279 本文代码效果如下: MainWindow.h MainWindow.cpp
Windows和WSL安装CUDA 我在自己电脑的 Windows 和 WSL 中都安装了CUDA,这两个系统上的 CUDA 互不影响,即使安装的版本不一样也可以,这里记录一下安装的过程。因为版本不同可能会产生很多不同的错误,如支持的显卡架构不同,显卡驱动和显卡兼容性问题。下面是本文环境配置及版本信息:系统: Windows 11和wsl2_ubuntu22.04显卡:3060 (架构:Ampere)显卡驱动:NVIDIA-Linux-x86_64-560.81cuda版本:12.6。
Qt 登录界面 本文代码效果如下: 本文代码:https://download.csdn.net/download/Sakuya__/89607657https://download.csdn.net/download/Sakuya__/89607657LoginTitleBar.h 自定义的透明标题栏LoginTitleBar.cppLogin.h Login.cpp
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中安装扩展。
QThread和std::thread 在 Qt 中, 我们经常会用到多线程,这时候就需要纠结是使用 Qt 的 QThread 还是使用 C++ 标准库的 std::thread。这里记录一下我自己的理解,先介绍一下 QThread 和 std::thread 的使用方法,对比一下他们的不同,最后说一下我理解的应该怎么选择这两种方法。
Qt QListView自定义树状导航控件 大部分的软件都有多个页面,这时候就需要一个导航栏控件,通过在导航栏中选择某一栏,同时显示对应的页面。本文代码效果如下:本文的导航栏控件基于大佬 feiyangqingyun 的导航栏控件博客做了美化,修复了一些会导致崩溃的bug。本文代码:也可以在这里下载大佬的代码学习:NavListView: Qt 自定义的树形导航控件。
Visual Studio 使用第三方库管理工具 vcpkg Windows下开发C/C++程序,少不了用开源的第三方库。比如线性代数和矩阵分析的库eigen,或者图像处理的OpenCV库。虽然这些库都是开源的,但是由于要编译debug和release版本的,32位以及64位的,如果像FFmpeg这种还要考虑是否引用其他开源库的功能,那么编译类型的组合会更多。如此多库的版本,编译和管理起来都十分麻烦。这时候我们就需要一个库管理工具,来管理我们所有的第三方库了。这里使用vcpkg集成到Visual Studio中。自动下载开源库源代码。
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 #<---数据库安装路径。
3D Gaussian Splatting复现 最近3D Gaussian Splatting很火,网上有很多复现过程,大部分都是在Windows上的。Linux上配置环境会方便简单一点,这里记录一下我在Linux上复现的过程。
Linux 编译安装colmap COLMAP可以作为独立的app,通过命令行或者图形交互界面使用,也可以作为一个库被包含到其他源代码中。这里记录一下编译安装colmap的过程,首先需要安装好CUDA,CUDA具体安装过程这里就不赘述了。