自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 C++ 深入理解This指针及原理

在使用std::bind绑定对象函数时,都需要将this作为第一个参数传递给bind函数,经过一番资料查阅后终于知道原因。结论:在函数中执行时,就算对象中途被销毁也不会影响this的使用,此时this指向的地址仍然是该对象析构前的地址。当线程进入函数后,this将作为一个局部变量传入函数中,且指向该对象。

2024-04-30 09:46:25 91 1

原创 从源码角度理解QT信号和槽-信号连接类型

从源码角度理解QT信号和槽-参数传递。其中列举了Qt信号连接的几种类型,但是没有深入解析每一种连接的原理,因此还想补一篇文章继续通过Qt源码分析Qt信号连接类型内部机制。经过以上解析我们得出几个总结:1.自动连接实际是根据线程判断连接类型是直接连接还是队列连接2.直接连接实际上类似于观察者模式,能够立即触发槽函数3.队列连接是利用Qt事件循环机制来实现的,并且参数会发送拷贝构造出新的出来4.阻塞连接千万不能在同一线程中使用。

2024-02-28 15:47:14 1591 1

原创 基于Windows API下的ICMP协议通信C++实现

最近正在开发一个网络质量检测工具,可实时检测网络质量并报告,开始的想法即是循环ping目标服务器,然后计算延迟及丢包率得出结果。因此需要基于C++实现ICMP的网络通信。

2024-02-25 16:18:14 392

原创 QNetworkAccessManager实现的HTTP异步接口调用问题解决

但是这种方法有一种情况会使程序出现异常:当MainWindow调用请求后又进行析构,之后网络请求数据到达后通过callBack进入lambda函数中,假如该函数有使用MainWindow中的成员变量就会发送异常,这种情况在网络状态不好的时候经常发生。利用QT中的QPointer特性,构造一个指向MainWindow的QPointer,将QPointer捕捉到lambda函数中,之后判断一下MainWindow是否为空。

2024-02-24 09:30:28 403

原创 从源码角度理解QT特性-对象树

众所周知,在C11之前,C++的内存管理是非常让人头疼的,从C11之后新增了智能指针加强在开发过程中对内存泄漏的防范,而QT中又有一个独有的特性-对象树。对于QObject来说,每个对象都可以存在多重的子父关系,因此这种关系整体来看就形成了对象树。从内存管理的角度分析,它有一个很重要的作用:当父对象析构后,挂载到其下的所有子对象将会被附带析构。基于这一特性,很大的预防了内存泄漏带来的风险。

2024-02-23 09:39:17 1339

原创 QNetworkAccessManager实现超时机制的同步Http网络接口

在之前写过一篇基于QNetworkAccessManager实现的异步HTTP网络接口,于是想补一篇同步的HTTP网络接口实现方法。QNetworkAccessManager实现可手动中断和超时机制的异步Http网络接口同步就需要在抛出请求后阻塞代码,直至请求数据返回后再返回当前函数。在QT开发中,假如在主线程中调用就绝对不能卡UI界面,因此需要在等待http请求返回期间正常进行事件循环。

2024-02-22 18:40:30 385 1

原创 QNetworkAccessManager实现可手动中断和超时机制的异步Http网络接口

Qt中的网络访问 API 是围绕 QNetworkAccessManager 对象构建的,该对象保存它发送的请求的通用配置和设置。因此实现Http请求必然需要使用QNetworkAccessManager 来开发。需要注意的是:QNetworkAccessManager 是基于 QObject 的,所以只能在它所属的线程中使用。

2024-02-21 09:23:17 821

原创 从源码角度理解QT信号和槽-参数传递

Qt中的信号和槽机制想必是Qt开发者再熟悉不过的机制了,但是在某个上班摸鱼的日子我做了一个示例,才发现其中还是有很多的坑,接下来主要通过源码的简单解析记录一下参数传递相关特性供参考。

2024-02-20 10:03:34 1313

原创 QT表格函数表达式计算工具

在公司产品中又新增了一个需求:需要在低代码工具平台中配置类似excel的函数表达式计算,如sum(单价*库存数量),其中“单价”和“库存数量”为该表格表头的标题,表示计算每一行的总金额然后对其求总和,之后显示到界面上显示。

2024-02-16 16:19:50 443

原创 Windows API-虚拟内存管理

简单记录一下虚拟内存的操作方法

2024-01-24 15:05:50 331 1

原创 QT中splitter控件拖动不流畅问题解决

例如:用户拖动控件缩小上方控件的高度,到一定高度后总是会卡顿一下,当继续拖动后就会隐藏。

2024-01-03 10:55:19 416 1

空空如也

空空如也

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

TA关注的人

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