自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Qt信号槽细节原理

3.在同一个线程中,当一个信号被emit发出时,会立即执行其槽函数,等槽函数执行完毕后,才会执行emit后面的代码,如果一个信号链接了多个槽,那么会等所有的槽函数执行完毕后才执行后面的代码,槽函数的执行顺序是按照它们链接时的顺序执行的。4.在链接信号和槽时,可以设置链接方式为:在发出信号后,不需要等待槽函数执行完,而是直接执行后面的代码,是通过connect的第5个参数。以上,便是信号槽的整个流程,总的来说就是一个“注册-索引”机制,并不存在发送系统信号之类的事情。第5个参数一般不填,为默认值。

2024-02-25 18:03:13 285

原创 C++回调函数

回调函数通常是函数指针,它指向一个具有特定签名(参数列表和返回类型)的函数。

2024-02-25 16:57:17 110

原创 Qt独特特性

元对象编译器会对Q_Object相关类里面的东西进行编译,生成C++文件,也就是那些moc_的文件。成员变量是一个“内”概念,反映的是类的结构构成。属性是一个“外”概念,反映的是类的逻辑意义。成员变量没有读写权限控制,而属性可以指定为只读或只写,或可读可写。成员变量不对读出作任何后处理,不对写入作任何预处理,而属性则可以。,为继承自QObject的对象赋予独特属性值。再让C++编译器编译。

2024-02-25 15:25:14 174

原创 观察者模式

有时也被称为“模型-视图”模式、“源-监听者”模式等。在这种模式中,由一个目标对象来管理所有依赖与它的观察者对象,并且当这个目标对象自身发生改变时,会主动向它的观察者们发出通知。前面已经说了,观察者模式也可以理解为 “源-监听者” 模式,这种应用就太多了。举个简单的例子就是各种 listener,比如当你有一个按键,你肯定要给这个按键添加监听事件(listener)来完成指定动作吧,这就是一种应用。于是你天天等啊等啊,等它的更新通知一来,你就去看那些最新的视频。

2023-09-04 23:37:43 8

原创 装饰者模式

送你一个女朋友怎么样!想她是美国金发大妞?你想她是哪个国家的就是哪个国家的。她们有不同的爱好或者习惯,每一个这样的女孩,都可以看作是一个 Java 类。我知道此刻你一定在想,这一个、那一个…这种方式没有扩展性,每当有一个新类型的女孩,就得又新建一个类,这简直就是类爆炸啊!装饰者模式(Decorator Pattern,有的也用 Wrapper Pattern)就是动态地把职责附加到已有对象上去,实现功能扩展。

2023-09-04 23:31:54 7

原创 适配器模式

适配器模式(Adapter Pattern)当然是用来适配的啦。当你想使用一个已有的类,但是这个类的接口跟你的又不一样,不能拿来直接用,这个时候你就需要一个适配器来帮你了。你去香港旅游,买的 iPhone6 的充电器插头是英标的,它是那种三脚是方形的插头。而咱们国标的插头是两只脚,和英标不一样。好的,目标明确,英标三只脚插头充电,国标两只脚插头充电。适配器对象组合一个实现新接口的对象(这个对象也可以不实现一个接口,只是一个单纯的对象)对适配器原有接口方法的调用被委托给新接口的实例的特定方法。

2023-09-04 23:21:43 7

转载 C++之sort()函数详解

顾名思义,sort就是用来排序的函数,它根据具体情形使用不同的排序方法,效率较高。可以看到,sort的参数有三个,其中前两个是必填的,而比较函数则可以根据需要填写,如果不写比较函数,则默认对前面给出的区间进行递增排序。这样就可以让数值大的元素在前面,即降序排列,对于double,char亦如此,把cmp内传入参数的类型改变一下就好了。运行之后可以得到下面的结果,可以试着理解一下(特别注意理解“尾元素地址的下一个地址”)。sort(首元素地址(必填),尾元素地址的下一个地址(必填),比较函数(非必填));

2023-08-16 00:04:09 1876 1

转载 C++中的substr()函数详解

我们可以运行三个嵌套循环,最外面的循环选择起始字符,中循环将选择的字符右边的所有字符视为子字符串的结束字符。最里面的循环从当前选择的起点打印字符到选择的终点。len:子字符串的长度。s.substr(i,len)从字符串s中的索引i开始打印长度为len的子字符串。作为参数,并返回一个新构造的字符串对象,其值初始化为该对象的子字符串的副本。在此字符串和字符被给定,并且您必须打印子字符串,后跟给定的字符。我们需要编写一个程序,以打印该给定字符串的所有非空子字符串。大于字符串的大小,则返回的子字符串为。

2023-08-16 00:01:07 18686

原创 Qt对json生成与解析的封装

现在JsonHelper类具备了生成和解析JSON的功能。你可以使用generateJson方法来将QVariantMap转换为JSON字符串,使用parseJson方法将JSON字符串解析为QVariantMap。

2023-06-17 11:13:48 34

原创 QGraphicsView示例代码改版

接下来,我们将小圆相对于大圆的中心位置设置为(0, 0),即小圆相对于大圆的左上角位置。然后,我们将小圆添加到大圆的Group中,通过addToGroup函数将小圆添加到大圆的Group中,这样小圆将随着大圆的移动而一起移动。这样,view将占据窗口的左上角区域。然后,我们将大圆的位置设置为scene的中心,使用setPos(-100, -100)将大圆的左上角定位到scene的中心。通过这些修改,你将看到view在窗口的左上角,scene在view的中心,大圆在scene的中心,小圆在大圆的中心。

2023-06-15 23:27:08 6

原创 给QLabel添加长条背景色

【代码】给QLabel添加长条背景色。

2023-06-14 13:13:27 6

原创 QGraphicView绘制圆形示例

【代码】QGraphicView绘制圆形示例。

2023-06-14 12:56:01 75

原创 C++快速排序

2.分别对 61 左边的数 [ 43,11,34,56,21 ] 和右边的数 [ 90,68 ] 分别进行快速排序,这里体现了分治的思想。首先我们来看左边 [ 43,11,34,56,21 ] 的排序。快速排序比较有趣,选择数组的一个数作为基准数,一趟排序,将数组分割成为两部分,一部分均小于/等于基准数,另外一部分大于/等于基准数。4.左边 [ 21,11,34 ] 排序后,以 21 为分割线,左右各自只有一个数,自然已经停止,上面 43 的右边也只有一个元素,所以也已经是有序的。

2023-06-05 23:26:51 8

原创 C++插入排序

选择排序是每次选择出最小的放到已经排好的数组后面,而插入排序是依次选择一个元素,插入到前面已经排好序的数组中间,确保它处于正确的位置,当然,这是需要已经排好的顺序数组不断移动。第一次假设第一个元素已经排好,第二个元素 90 往前面查找插入位置,正好查找到 98 的位置插入,第二轮是 34 选择插入位置,选择了第一个元素 90 的位置插入,其后面的元素后移。第三轮排序则是 56 选择适合自己的位置插入,第四轮是最后一个元素 21 往前查找适合的位置插入。

2023-05-31 23:06:42 3

原创 C++冒泡排序

冒泡排序(Bubble Sort)是基于交换的排序,每次遍历需要排序的元素,依次比较相邻的两个元素的大小,如果前一个元素大于后一个元素则两者交换,保证最后一个数字一定是最大的(假设按照从小到大排序),即最后一个元素已经排好序,下一轮只需要保证前面 n-1 个元素的顺序即可。

2023-05-31 22:32:30 6

转载 Qt实现HTTP的Get/Post请求及示例

QT实现http请求

2022-12-14 22:01:57 160

转载 计算机网络互联,握手详解

计算机网络互联,握手

2022-12-14 21:42:21 11

转载 c++指针函数、函数指针、回调函数

c++指针函数、函数指针、回调函数

2022-11-10 23:30:59 7

转载 c++代码规范

c++代码规范

2022-11-08 23:35:22 10

转载 c++深拷贝和浅拷贝

c++深拷贝和浅拷贝

2022-11-07 23:27:43 6

转载 QT事件过滤器

QT事件过滤器

2022-10-17 23:13:34 62

空空如也

空空如也

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

TA关注的人

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