- 博客(43)
- 收藏
- 关注
原创 QT之MVD的简单体现和通过便利类widget复现同样效果
这是因为 QStandardItemModel 实现了 Qt 的模型 / 视图架构中的标准接口,而这两种视图(树视图和表格视图)都能够适配这种标准模型。虽然通过QTableWidget可以绕过显式的模型操作,但它的内部仍然通过QTableWidgetItemModel实现了模型-视图的分离。在复杂场景中,模型-视图架构的灵活性、性能和可维护性优势会显著体现。同时,它也可以作为表格数据的容器,通过将数据组织成二维表格的形式(行和列),可以直接用于表格视图(QTableView)
2025-05-19 08:40:41
1025
原创 imx6ULL从应用程序到驱动程序
本文介绍了如何通过应用程序和驱动程序控制LED设备。应用程序通过open和write系统调用打开字符设备并改变LED状态。驱动程序部分,首先通过register_chrdev注册设备并绑定file_operations结构体,确保内核能够找到并调用相应的驱动函数。接着,通过platform_device描述硬件资源,并使用platform_device_register将其注册到内核。最后,通过platform_driver提供设备操作函数,并使用platform_driver_register注册驱动。整
2025-05-18 08:33:03
930
原创 cin,cin.get(),getchar(),getline(),cin.get line()异同点
cin,cin.get(),getchar(),getline(),cin.get line()异同点
2025-04-11 22:56:13
501
原创 C++ unique_ptr、shared_ptr、weak_ptr全面解析
对make出来的智能指针和new出来的智能指针的区别做了详细介绍,同时对shared_ptr和weak_ptr之间的关系做了全面剖析
2025-03-31 21:19:15
1026
原创 音视频编码和封装格式
视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,我们看到的就是动作连续的视频。由于连续的帧之间相似性极高,为便于储存传输,我们需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余。音频编码是一种将音频信号转换为数字形式的过程,目的是减少数据中的冗余,以便存储和传输。音频编码的实质是通过抽样、量化和编码三个步骤,将连续变化的模拟信号转换为数字编码。视频编码是将视频数据从一种格式转换为另一种格式的过程。
2025-02-25 22:29:22
1160
原创 C++ 关于虚函数的一些碎碎念
如果基类的析构函数不是虚函数那也不会报错,但是在工程上是的,方法实现了多态,否则容易出现这种类似问题实现一个基类AB1和B2继承A类场景模拟,由于构造哪个类由传参决定,所以返回的是基类此时就会出现问题,Drop函数里delete只调用了基类的析构函数,但是没有调用子类的析构函数,造成内存泄露所以为了防止这种情况产生,将基类的虚构函数设置成virtual就能调用到子类的虚构函数。
2024-12-27 16:12:46
1021
原创 超详细!手撕C++线程池!(大家圣诞节快乐呀!!)
充分利用C++新特性,通过智能指针管理线程和任务对象的生命周期,通过条件变量condition_variable来进行任务通知,以及通过promise来异步获取任务的返回
2024-12-25 22:11:11
564
原创 new和malloc、delete和free的区别
分析了五点new和malloc的区别,同时提到free是怎么知道要释放多少空间和malloc是怎么分配内存的这两点题外话
2024-12-24 17:17:47
467
原创 Makefile学习(四)提取makefile的公共部分,简化makefile
简化项目中的makefile,提取出公共部分放在另外的makefile,便于移植和维护,同时用到wildcard、patsubst、notdir、strip等函数
2024-10-30 11:33:46
883
原创 在windows和Linux上实现TCP通信(二)
对客户端进行connect,select,send做了详细分析,对每一步的函数和用到的参数都有详细解释
2024-10-15 17:42:02
1865
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人