自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ray

靡不有初鲜克有终

  • 博客(75)
  • 问答 (1)
  • 收藏
  • 关注

原创 多人开发时Git的变基和摘取使用技巧

使用gitpull拉取最新代码时,默认的,gitpull前应确保本地提交都已经推送,否则会造成一个本地合并,没有实际作用且导致分支图错乱。

2025-01-20 14:14:55 1598

原创 QT 使用QSqlTableModel对数据库进行创建,插入,显示

本案例用于对数据库中的数据进行显示等其他操作,其他表格筛选,过滤等功能可看此博客框架:数据模型使用,视图使用QTableView,表格的一些字体或者控件之类的使用实现。导航栏的变化实时的传回给表格,所有的数据库表都实现继承一个表格类,根据表格本身的特性可以设置自己的委托。数据库使用一个单列类进行管理,包括数据库的读取,创建,数据插入,以及对模型的映射等。使用的数据库类型为QPSQL知识理应共享,源码在此。

2025-01-18 15:13:53 1496

原创 QT 使用QTableView读取数据库数据,表格分页,跳转,导出,过滤功能

本案例用于对数据库中的数据进行显示等其他操作。数据模型使用,视图使用QTableView,表格的一些字体或者控件之类的使用实现。导航栏的变化实时的传回给表格,所有的数据库表都实现继承一个表格类,根据表格本身的特性可以设置自己的委托。数据库使用一个单列类进行管理,包括数据库的读取,创建,数据插入,以及对模型的映射等

2025-01-18 14:55:36 1411

原创 QT 使用OpenGL显示并查看点云图

无需其他库,只使用OpenGL绘制图形类,计算点云的最小包围盒(轴对齐包围盒,AABB),可以帮助确定视图的缩放级别,或者在用户进行平移和旋转操作时保持点云在视图内这两个类结合起来,前者提供了渲染和交互的框架,后者用于理解和限定点云的空间范围。

2025-01-18 11:08:33 1373 2

原创 C++ 搭建一个双向多线程的GRPC通信服务框架

Protobuf 提供了一种定义数据结构和序列化数据的方法,而 GRPC 提供了一种使用这些数据结构进行远程过程调用(RPC)的方法。这两者结合使用,可以构建出高效、可扩展的分布式系统。

2025-01-16 15:34:52 1605

原创 ubuntu下安装编译grpc与protobuf

【代码】ubuntu下安装编译cmake,grpc与protobuf。

2025-01-16 10:27:07 399

原创 Qt 使用共享内存的方式限制程序单一启动

【代码】Qt 使用共享内存的方式限制程序单一启动。

2025-01-15 18:19:13 459

原创 ubuntu 下使用glog管理日志

【代码】ubuntu 下使用glog管理日志。

2025-01-15 18:13:46 499

原创 ubuntu 使用linuxdeployqt打包Qt程序

这样其实就可以了,但是我们可以看到它有俩个error,其实这并有关系 一个是没有 .desktop 文件,这个是linuxdeployqt的一个配置,后续可以再次编辑,一个是没有设置图标也是后续可再次编辑的。ldd命令本身只能查找隐式加载的so,故若程序中代码使用显式加载的so,它是找不到的,需要自己手动的加入。准备好程序的realse环境下的可执行文件,使用qtcreator或者vsode的IDE都行,找到。文件夹下,至此程序打包完成,应可正常启动。目录下,这样,我们就可以在其他目录访问了。

2025-01-14 17:02:34 1521

原创 C++ QT 自绘呼吸灯

C++ QT QLabel 自绘呼吸灯。

2025-01-14 16:33:58 384

原创 C++QT 使用VLC播放实时视频

VLC媒体播放器(简称VLC)是一个自由、开源的跨平台多媒体播放器及框架,由VideoLAN项目维护。它能够播放大多数多媒体文件,以及DVD、音频CD、VCD和各种流媒体协议。

2025-01-14 16:19:49 467

原创 C++ QT 自绘表盘

C++ QT 自绘表盘。

2025-01-14 15:31:08 399

原创 在Ubuntu下安装PostgreSQL数据库以及安装pgAdmin4工具

在Ubuntu下安装PostgreSQL数据库以及安装pgAdmin4工具

2025-01-14 15:10:32 632

原创 Qt 使用QTreeView显示并动态的增删改查JSON文件数据

本案例在此开源项目QJsonModel的基础上实现,动态的生成并操作JSON数据QJsonModel是一个基于的JSON数据模型,它提供了一种简单的方式来将JSON数据可视化,功能简单来说就是读取JSON文件显示与修改。根据具体的需求,修改了部分代码,添加了一些功能点。添加了菜单,可增删数据自定义约束数据类型添加新旧值显示自定义表头名称鼠标悬浮提示总的来说就是使用的model-Viwe架构,通过QJsonModel将JSON数据可视化,然后通过自定义的QTreeView来显示数据,,通过。

2024-11-09 17:51:38 940

原创 关于QT cmake项目添加了.ui文件build未自动生成ui_xxx.h,错误提示找不到这个头文件问题处理

【代码】关于QT cmake项目添加了.ui文件build未自动生成ui_xxx.h,错误提示找不到这个头文件问题处理。

2024-10-15 10:34:22 2810

原创 Ubuntu系统可以使用WIFI上网,而插网线有线网不能上网,网卡驱动未安装问题解决

docker0:这是Docker使用的虚拟网络接口,用于Docker容器的网络通信。它目前没有连接(NO-CARRIER),并且状态为DOWN,这可能是因为没有运行任何Docker容器。从输出来看,它处于启用状态(UP),但是处于休眠模式(DORMANT)。首先要排除是否为硬件问题,我在windows下是可以正常使用网线的,所以排除硬件的问题。lo:这是本地回环接口,通常用于本地通信,如访问localhost。这就是网卡的制造商,我们去他们的官网下载中心,找到对应型号的驱动。文件,安装步骤它写的很清楚。

2024-10-12 17:21:55 2088

原创 Linux下以编译源码的方式安装Qt5与Qt6及其使用

【代码】Linux下以编译源码的方式安装Qt5与Qt6及其使用。

2024-10-11 20:58:05 1942

原创 Qt 自绘开关按钮以及设计器中的提升为用法

在Qt设计器中,它允许用户将一个标准Qt Widget转换为自定义的QWidget子类。这样,用户可以在设计器中使用自己的控件,同时还能在代码中添加额外的功能或属性。知识理应共享,源码在此提升为用起来还是很方便的,可以大大减少代码量以及提高阅读效率。

2024-10-11 18:02:22 763

原创 linux ubuntu 更新/安装clang编译器

实际上安装在了不同的路径,你需要将上述命令中的 /usr/bin/clang-12 替换为实际路径。安装后当你再次查看版本时还是显示的是。也可以运行以下命令查看指定版本的。完成上述步骤后,再次确认。

2024-07-22 17:04:40 1905

原创 linux终端美化[zsh]以及一些效率工具的使用

terminator,zsh,tldr,ranger,Lazygit,glances,shc使用介绍

2024-07-22 16:59:47 1147

原创 ROS发布与订阅使用以及launch启动多个节点实例

在ROS中,发布(Publish)与订阅(Subscribe)是其通信机制中的核心概念,它们基于一种叫做“话题”(Topics)的通信方式。

2024-07-18 23:37:34 1726

原创 【ROS】的软件包应用商店使用-以小乌龟为例

ros应用商店,里面有大量ros可使用的软件。下面以ros经典的控制小乌龟为例。商店有大量的软件可供选择,可以按需进行下载。

2024-07-18 10:51:43 409

原创 QT 音乐播放器【二】 歌词同步+滚动+特效

音乐播放器 使用QGraphicsView上绘制,实现歌词同步+滚动+特效

2024-06-03 11:26:24 3365 8

原创 QT 音乐播放器【一】 显示音频级别指示器

QAudioProb提供了一个用于播放音频和视频的媒体播放器它提供了一个探针,用于监控音频流。当音频流被捕获或播放时,可以接收到音频数据。这个类在需要访问音频数据以进行分析或处理的情况下非常有用,而不需要直接与音频设备交互。是的一个信号,当音频数据可用时这个信号会被发射。这个信号的参数是一个对象,它包含了音频数据的详细信息,比如采样率、通道数、格式以及音频数据本身。当与一个,它可以探测到这个媒体对象的音频输出。当媒体对象播放音频时,音频数据会通过信号传递槽函数,通过槽函数处理音频缓冲区,更新音频级别显示器。

2024-05-30 13:46:42 1092 3

原创 【笔记】Qt 按钮控件介绍(QPushButton,QCheckBox,QToolButton)

QAbstractButton 是个抽象类,该类是标准按钮 QPushButton、复选按钮 QCheckBox、单选按钮 QRadioButton、工具按钮 QToolButton 的父类,该类描述了按钮的一些共同功能,比如单击按钮发出的信号,按钮的状态等访问函数:bool autoExclusive() const;描述了按钮的自动排他性,若启用了该属性,则属于同一父部件的可选中按钮的行为,就好像是在同一排他性组中的按钮一样。除了单选按钮,默认为关闭。

2024-05-24 21:26:48 1297

原创 Visual Studio Code插件

VsCode常用插件(个人向),持续更新

2024-05-24 17:27:30 785

原创 QT 使用QLsitView 实现多个子项选中取消效果

整个界面的布局介绍请看这篇博客想要的到这种自由选择中的Item效果,需要使用到Model-view的思想,每个item中都要存放一个标志位,用在Paint函数去判断是否绘制为按下的状态。每次item被点击时,更新标志位,并刷新视图,从而实现点击后变色的效果。知识理应共享,源码在此。这个示例中的功能点,主要在于绘制函数的实现,要考虑怎么把原有qt的绘制屏蔽掉,关于数据处理的部分很简单。

2024-05-23 15:31:13 614

原创 VsCode CMake调试QT无法查看源码问题处理

PDB文件:是一个包含调试信息的数据库,它由编译器和链接器在构建程序时生成。PDB文件记录了程序的调试信息,如变量类型、函数原型、源代码行号等,这些信息对于调试和性能分析非常重要。这种情况一般都是安装目录下没有。将其放到安装的目录下,如。再贴一个QT官网源码的。

2024-05-21 09:19:06 645

原创 Qt中的处理图像的类介绍以及QPixmap、QImage、QSvgRenderer间转换

QSvgRenderer本身并不直接存储图像数据,它是一个用于渲染SVG图像的类。要将SVG图像渲染为QPixmap,可以使用QPainter来绘制QSvgRenderer的内容到一个空的QPixmap上。在Qt中,QPixmap、QImage和QSvgRenderer之间可以相互转换,以便在不同的场合使用。要将QImage转换为QPixmap,可以使用QPixmap的构造函数,该构造函数接受QImage作为参数。

2024-05-21 09:15:43 1551

原创 cmakelist 编译源码生成动态静态库并链接到项目

当我们使用vscode编译c++代码时,需要加入第三方代码,而它没有库时。这时候我们就需要自己写一个Cmakelist编译成库,然后链接到自己的项目上

2024-05-20 14:21:16 1311

原创 QTreeView中item节点任意拖拽移动,添加,删除与自绘指示器

QTreeView中item节点任意拖拽移动,添加,删除与自绘指示器,拖拽事件dragEnterEvent,dragMoveEvent,mimeData,dropMimeData,mimeTypes,supportedDropActions处理,DropIndicatorPosition使用,QProxyStyle自定义实现

2024-05-20 14:15:34 3609 3

原创 SQL常用语句与事务介绍

事务的这些特性保证了数据库的可靠性和一致性。在数据库操作中,尤其是涉及金融、库存管理等对数据准确性要求极高的场景,事务的处理尤为重要。例如,在银行转账操作中,从账户A扣除金额和向账户B增加金额必须作为一个事务来处理,确保不会出现A账户扣款成功而B账户加款失败的情况,从而保证数据的一致性。

2024-05-01 21:30:19 932 1

原创 QT 使用QLsitView 实现数据的分组多级显示,子列表可动态显示/隐藏

在QT中多级显示应该是QTreeView该干的事,但是当我们还需要图标显示的时候,也就是QTreeView就无法满足了。描述下核心思想:整体分为俩层结构,都是继承于QWidget。最上层为一个QWidget,用于存放所有第二级的QWidget。第二层为QWidget,就也是所看到的每一个组。里面都有一个QListView,用于控制隐藏/显示,看似为一个按钮,其实也是一个QWidget。也就是说整体就是有多个组拼起来的,而每个组中都有一个QListView和按钮,从而形成多级结构。

2024-04-30 11:18:14 1383

原创 simulink使用俩种方式封装(mask)画板/子系统的步骤

中的属性表里面就可以选择对应的。搭建一个简易的加法模型 ,

2024-04-24 14:37:20 2366

原创 Simulink封装(mask)功能介绍

参数约束:约束确保封装参数的输入在指定的范围内。例如,假设有一个封装的 Gain 模块。交叉参数约束:交叉参数约束应用于两个或更多的编辑或组合框类型的封装参数。搜索所需的模块,然后点击复制封装以从现有模块导入封装定义。初始化回调在这里,可通过命令函数可设置系统参数初始值设定,可对图标绘制函数的初始值进行设置等。通过Icon选项卡,用户可以创建具有特定形状、颜色和文本的图标,以便更轻松地识别和管理模块。端口约束:对封装模块的输入端口和输出端口指定约束。可以多层封装,再次封装时,封装的参数为以封装的控件参数。

2024-04-24 14:28:02 4643

原创 qt camkelist编写实现程序运行时动态加载库并访问其函数

在使用C++和Qt进行项目开发时,CMake是一个常用的跨平台构建系统生成工具,它能够管理构建过程,生成Makefile或者项目文件。*:将解析得到的函数指针转换为Init类型。这里Init是通过decltype获取的exprotFunc函数的类型。:尝试在加载的DLL中解析名为exprotFunc的函数。如果解析成功,返回该函数的函数指针。这里的a, b, c应该是传递给函数的实际参数。:创建了一个QLibrary对象,并指定了要加载的DLL的路径。:在调用完函数后,卸载DLL。是库文件所在的目录。

2024-04-18 17:15:49 1308

原创 【笔记】编写cmakelist的常用命令含义及使用

编写cmakelist的常用命令含义及使用

2024-04-18 11:34:01 1103

原创 c++ 反射与QMetaObject::invokeMethod介绍

C++语言标准本身并不直接支持反射机制,这与Java、C#等语言不同,它们在语言层面提供了丰富的反射API。然而,C++是一种非常灵活的语言,可以通过一些设计和编程技巧来实现类似反射的功能,QMetaObject::invokeMethod== 是 Qt 框架中一个非常强大且灵活的函数,它允许你在运行时动态地调用一个对象上的方法。这是基于 Qt 元对象系统的反射能力实现的。

2024-04-07 14:52:48 1691

原创 Doxygen生成文档的教程

Doxygen是一个开源的文档生成工具,主要用于从源代码文件中提取注释并生成文档。它支持多种编程语言,包括C++, C, Java, Python, PHP等。Doxygen能够识别特定的注释格式,并根据这些注释生成漂亮的文档,文档可以输出为HTML, LaTeX, RTF, XML等多种格式。Doxygen通常被开发人员用于编写和维护项目文档,特别是开源项目,以帮助其他开发人员理解和使用代码库。Graphviz:Doxygen可以使用Graphviz来生成更为复杂的图形,如调用图和类继承图。

2024-04-07 13:47:24 1837

原创 一文带你理解完Git知识点

Git 是一个分布式版本控制系统,用于追踪文件的更改和协助多人合作开发。在 Git 中,有几个核心概念需要理解,包括工作区(Workspace)、暂存区(Staging Area,也称作索引 Index)和版本库(Repository)。Git 提供了一个有效的机制来管理文件的修改历史,支持多人协作,并且可以方便地撤销错误的改动。

2024-04-07 10:54:07 1657

cmake,grpc与protobuf编译资源

cmake,grpc与protobuf编译资源

2025-01-16

VS Code C++可视化调试配置Qt5.natvis

QT查看调试信息插件,VS Code C++可视化调试配置Natvis

2024-01-24

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

TA关注的人

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