自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

用于记录学习的过程,不做商业用途。

知识都很基础,没有高大上东西。

  • 博客(141)
  • 资源 (6)
  • 收藏
  • 关注

原创 QT 自定义列表(tableview listview等)

重写这四个虚函数 进行自定义列表控件//创建需要设置的编辑类型 QSpinBox QDoubleSpainBox QCombox 等virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const//设置编辑类型的数据virtual voidsetEditorData(QWidget *editor, c

2024-05-05 10:35:34 400

原创 Qt 绘图(学习记录)

要在QT中绘图,你可以使用QPainter类。QPainter提供了一种很直观的方式来在QT应用程序中绘图。

2024-05-05 09:43:40 966

原创 对于SOCKET套接字问题的若干认识

由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理 [3]。原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。原始套接字主要用于一些协议的开发,可以进行比较底层的操作。创建面向连接的TCP和创建面向无连接的UDP套接字,在接受和发送时只能操作数据部分,而不能对IP首部或TCP或UDP首部进行操作。

2023-10-31 20:55:30 383

转载 关于QT多线程中回调函数的应用

其实质就是函数指针的操作,通常采用C语言定义函数,C++也可以用 using 定义函数指针。C++ 函数定义:using func = void(*)(char*,int);C语言这样定义: typedef void(*func)(char*,int);对于函数 void function(char*,int)1. 回调函数机制,可以提前注册相关事件,进行回调。使用call模块,并监听回调函数。运行后每秒打印一次当前鼠标位置。

2023-10-31 20:23:28 679

转载 QT元对象和QML以及C++属性学习

Q_PROPERTY 宏定义一个返回值类型为 type,名称为 name 的属性,用 READ、WRITE 关键字定义属性的读取、写入函数,还有其他的一些关键字定义属性的一些操作特性。QObject::metaObject() 函数返回类关联的元对象,元对象类 QMetaObject 包含了访问元对象的一些接口函数,例如 QMetaObject::className() 函数可在运行时返回类的名称字符串。QObject::setProperty() 函数可以在运行时为类定义一个新的属性,称之为动态属性。

2023-10-26 21:05:21 233

原创 C++和QML 交互方式

3.被 Q_PROPERTY(int value MEMBER m_value NOTIFY valueChanged)标记的变量可以修改和调用。2.被Q_INVOKABLE 修饰的 函数可以直接调用。其中自定义控件的方式可以 直接嵌套数据和绘图以及表格。通过 CPP继承 Qquickitem 进行操作。1.先写一个类 方便QML调用。2.是采用自定义控件的方式。1. 槽函数可以直接访问。1暴露全局变量的方式。

2023-10-26 20:59:55 195 1

原创 QML之Repeater 控件使用

Repeater 控件是 重复作用 根据 model中的index 数量进行重复。当model 为自定义model时 采用id 传递。废话不说 直接看如何用。当model 为数字时。当model 为数组时。

2023-10-22 10:59:25 520

原创 解析UDP传输过程中数据包丢失问题(大全)

QT下UDP丢包问题解决方案。

2023-08-07 21:12:14 2415

翻译 关于QT线程运用的三种方式

第二种 MoveToThread() 函数。Qt 提供的第二种线程的创建方式弥补了第一种方式的缺点,用起来更加灵活,但是这种方式写起来会相对复杂一些。第一种 继承QThread 重写run方法。第三种 采用线程池 QThreadPool。QThread 类函数。

2023-03-05 20:16:21 845 1

原创 关于VS2017中运行QT图像处理(包括gdal,OpenCV等 )

如果项目中存在是.pro 文件,需要用VS中QT tool工具pro产生.sln1.用VS上的Qt插件打开.pro项目2、保存.slnsln产生.pro1.右击项目,点击“Create Basic .pro File…”。注:若第一步中的选项为灰色,则先点击“Convert Project to Qt VS Tools Project”,再执行上一步骤的操作。选中项目,鼠标右键属性。

2023-02-24 11:38:03 882

原创 Qt中常见的位置和尺寸

/ 该坐标点值为: QPoint(left() + width() -1, top() + height() - 1)// 通过 左上角坐标(x, y), 和 矩形尺寸(width, height) 构造一个矩形对象。// 该坐标点值为: QPoint(left(), top() + height() - 1)// 该坐标点值为: QPoint(left() + width() -1, top())// 返回值直线的中心点坐标, (p1() + p2()) / 2。// 参数为 x轴坐标, y轴坐标。

2023-01-06 15:19:30 795

原创 C语言中常见的逻辑错误

记录交流

2022-11-23 15:12:56 3020

原创 蔚来一面:多线程join和detach的区别?

面经

2022-07-24 16:11:29 1296

原创 Linux线程函数以及分离属性

多线程

2022-07-19 11:15:57 309

原创 Linux ----->信号操作

信号的状态信号有三种状态产生、未决和递达。递达递送并且到达进程。

2022-07-16 11:20:18 201

原创 进程间通信

Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcessCommunication)。...

2022-07-15 22:09:55 78

原创 C++ 进程控制

C++ 进程控制

2022-07-15 22:03:17 352

原创 总结Linux下常用函数

常用函数 建议学习

2022-07-15 11:11:14 1942

原创 C++ 可调用对象包装器 function

std::function 必须要包含一个叫做 functional 的头文件,可调用对象包装器使用语法如下:下面的实例代码中演示了可调用对象包装器的基本使用方法:结果:通过上面的例子可以看出,使用对象包装器 std::function 可以非常方便的将仿函数转换为一个函数指针,通过进行函数指针的传递,在其他函数的合适的位置就可以调用这个包装好的仿函数了。另外,使用 std::function 作为函数的传入参数,可以将定义方式不相同的可调用对象进行统一的传递,这样大大增加了程序的灵活性。...

2022-06-25 15:20:45 386

原创 C++可调用对象

在 C++ 中存在 “可调用对象” 这么一个概念。准确来说,可调用对象有如下几种定义: 在上面的例子中满足条件的这些可调用对象对应的类型被统称为可调用类型。C++ 中的可调用类型虽然具有比较统一的操作形式,但定义方式五花八门,这样在我们试图使用统一的方式保存,或者传递一个可调用对象时会十分繁琐。现在,C++11通过提供std::function 和 std::bind统一了可调用对象的各种操作。关注我,带你感受Cpp...

2022-06-25 11:39:28 802

原创 C++ 可调用对象绑定器bind()

在 C++11 里已经 deprecated 了,建议使用新标准的 。 下面来看一个关于绑定器的实际使用的例子:结果:有了占位符的概念之后,使得 std::bind 的使用变得非常灵活:示例代码执行的结果:通过测试可以看到,std::bind 可以直接绑定函数的所有参数,也可以仅绑定部分参数。在绑定部分参数的时候,通过使用 std::placeholders 来决定空位参数将会属于调用发生时的第几个参数。...

2022-06-25 11:34:50 385

原创 libevent的使用

下面介绍一些常用函数:对于不同系统而言, event_base就是调用不同的多路IO接口去判断事件是否已经被激活, 对于linux系统而言, 核心调用的就是epoll, 同时支持poll和select.查看libevent支持的后端的方法有哪些: libevent在地基打好之后, 需要等待事件的产生, 也就是等待事件被激活, 所以程序不能退出, 对于epoll来说, 我们需要自己控制循环, 而在libevent中也给我们提供了API接口, 类似where(1)的功能.函数如下:这个函数一般不用,

2022-06-20 22:27:22 1060

原创 网络编程之 libevent库介绍

目录介绍基本概念:介绍一下库的内容: libevent库例的使用

2022-06-20 21:33:45 480

原创 linux 下 条件变量、信号量

linux 下 条件变量、信号量

2022-06-20 11:50:31 414

原创 在次手撕前缀树(字典树)

代码

2022-06-19 17:34:42 130

原创 Linux下进程、线程,锁

废话不多说,直接看目录进程:线程:锁:互斥锁:读写锁:

2022-06-19 12:28:38 712

原创 线程同步问题再探

假设有 4 个线程 A、B、C、D,当前一个线程 A 对内存中的共享资源进行访问的时候,其他线程 B, C, D 都不可以对这块内存进行操作,直到线程 A 对这块内存访问完毕为止,B,C,D 中的一个才能访问这块内存,剩余的两个需要继续阻塞等待,以此类推,直至所有的线程都对这块内存操作完毕。 线程对内存的这种访问方式就称之为线程同步,通过对概念的介绍,我们可以了解到所谓的同步并不是多个线程同时对内存进行访问,而是按照先后顺序依次进行的。例子: 结果:通过对上面例子的测试,可以看出虽然每个线程内部

2022-06-19 11:44:21 54

原创 C++解析Json之 RapidJson库

RapidJSON 是一个 C++ 的 JSON 解析器及生成器。它的灵感来自 RapidXml。使用方法:RapidJSON: 首页http://rapidjson.org/zh-cn/index.html这里 rapidjson 为作用域; 那么现在该 JSON 就会被解析至 中,成为一棵 *DOM 树 *: 举例: 让我们查询一下根 Object 中有没有 成员。由于一个 可包含不同类型的值,我们可能需要验证它的类型,并使用合适的 API 去获取其值。在此例中, 成员关联

2022-06-16 22:33:54 3082

原创 面试题快速排序 递归和非递归实现

递归非递归测试:

2022-06-07 15:32:01 76

翻译 Reactor 模式

Reactor 翻译过来的意思是「反应堆」,可能大家会联想到物理学里的核反应堆,实际上并不是的这个意思。这里的反应指的是「对事件反应」,也就是来了一个事件,Reactor 就有相对应的反应/响应。事实上,Reactor 模式也叫 模式,我觉得这个名字更贴合该模式的含义,即 I/O 多路复用监听事件,收到事件后,根据事件类型分配(Dispatch)给某个进程 / 线程。Reactor 模式主要由 Reactor 和处理资源池这两个核心部分组成,它俩负责的事情如下:Reactor 模式是灵活多变的,可以应对不

2022-06-04 21:36:27 7563

原创 Proactor 模式

一起看看 Proactor 模式的示意图: 介绍一下 Proactor 模式的工作流程:可惜的是,在 Linux 下的异步 I/O 是不完善的, 系列函数是由 POSIX 定义的异步操作接口,不是真正的操作系统级别支持的,而是在用户空间模拟出来的异步,并且仅仅支持基于本地文件的 aio 异步操作,网络编程中的 socket 是不支持的,这也使得基于 Linux 的高性能网络程序都是使用 Reactor 方案。而 Windows 里实现了一套完整的支持 socket 的异步编程接口,这套接口就是 ,是由操作系

2022-06-04 21:33:59 495

原创 理解 Reactor 和 Proactor 的区别

因此,Reactor 可以理解为「来了事件操作系统通知应用进程,让应用进程来处理」,而 Proactor 可以理解为「来了事件操作系统来处理,处理完再通知应用进程」。这里的「事件」就是有新连接、有数据可读、有数据可写的这些 I/O 事件这里的「处理」包含从驱动读取到内核以及从内核读取到用户空间。举个实际生活中的例子,Reactor 模式就是快递员在楼下,给你打电话告诉你快递到你家小区了,你需要自己下楼来拿快递。而在 Proactor 模式下,快递员直接将快递送到你家门口,然后通知你。...

2022-06-04 21:32:03 3288

原创 阻塞、非阻塞、同步、异步 I/O 的概念

先来看看阻塞 I/O,当用户程序执行 ,线程会被阻塞,一直等到内核数据准备好,并把数据从内核缓冲区拷贝到应用程序的缓冲区中,当拷贝过程完成, 才会返回。注意,阻塞等待的是「内核数据准备好」和「数据从内核态拷贝到用户态」这两个过程。过程如下图: 知道了阻塞 I/O ,来看看非阻塞 I/O,非阻塞的 read 请求在数据未准备好的情况下立即返回,可以继续往下执行,此时应用程序不断轮询内核,直到数据准备好,内核将数据拷贝到应用程序缓冲区, 调用才可以获取到结果。过程如下图: 注意,这里最后一次 read 调用,

2022-06-04 21:30:19 148

原创 Window系统下互斥锁应用

Window系统下互斥锁应用

2022-06-04 16:34:38 408

原创 Window系统下多线程应用

头文件:#include 同时必须工作在std区间;

2022-06-04 16:20:35 372

原创 解决Git请求错误问题

$ git clone gits://github.com/Cloning into 'FdogSerialize'...git: 'remote-gits' is not a git command. See 'git --help'.The most similar command is remote-httpsfatal: unable to access 'https://github.com/Hu/': Failed to connect to github.c...

2022-05-28 17:35:52 1726 2

原创 基于低层平衡树的key-value容器

template<typename T>struct Node{ Node<T>* left; Node<T>* right; T val; T key; T height; Node() {}; Node(const T &m_val = T(), const T &m_key = T()) :val(m_val), key(m_key), left(nullptr), right(nullptr) {};};template&.

2022-05-23 20:15:16 84

原创 基于低层哈希表的key-value容器(map容器)

template<typename T,typename V>struct LNode { T key; V value; LNode * next; LNode(const T m_key, const V m_value) :key(m_key), value(m_value), next(nullptr) {};};template<typename T, typename V>class hash_map{public: void insert(T .

2022-05-23 20:14:34 164

原创 MFC多文档介绍

MFC 多文档分为五个类:子类包括 view和Doc 的 样式和布局主类: 包含文档主窗口的信息Dlg 是Dialog 的缩写,表示对话框本身View表示视图类,负责显示数据,提供编辑数据、修改数据的功能。它是指编辑区里面的事就是那块白色的中间区域,负责绘制和响应一些消息Doc表示文档类,提供对数据的保存和加载。有点像数据库,保存着编辑数据,用于view的Redraw的时候用,还有保存文件。一般动态的编辑数据都放在Doc里面。他也不是从CWND中派生出来的,没有继承MessageB.

2022-05-22 16:27:37 1110

原创 手撕智能指针------------------------SmartPointer

-------------------------------------------------------分割线-------------------------------------------------------------有参数构造、拷贝构造、等号重载 、*重载 、& 重载 、指针数量getCountPtr、析构函数。class SmartPoint{public: SmartPoint(T* Ptr ) :_mPtr(Ptr) { if (this-&g..

2022-05-20 15:16:27 208

遥感图像处理软件 开源 免费 好编辑

遥感图像处理软件 开源 免费 好编辑

2023-02-24

GDAL文件 开源免费哦

GDAL文件 开源免费哦

2023-02-24

libevent 实例程序

libevent 实例程序

2022-06-20

代码 libevent 使用

代码 libevent 使用

2022-06-20

redis-笔记.pdf

redis-笔记.pdf

2022-06-19

MySQL8官方中文参考手册.zip

MySQL8官方中文参考手册.zip

2022-06-02

Linux静态库制作过程 以及编译

Linux静态库制作过程 以及编译

2022-04-30

垃圾分类小程序部分.zip

自己开发的小程序,蓝牙无线控制舵机开启,语音识别控制舵机开启,垃圾类型播报。(小程序部分)

2021-02-03

空空如也

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

TA关注的人

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