QT:三大特性

QT的三大特性:

1、信号与槽

2、内存管理

3、事件处理

1、信号与槽

当信号产生时,就会自动调用绑定的槽函数。

自定义信号:

类中需要添加O_OBJECT宏

声明:

signals标签之下进行声明

定义:

信号不需要定义

发送信号:

emit 信号();

emit 信号(参数1, 参数2, ....);

信号可以重载,当槽函数需要参数时由信号给它传递。

自定义槽函数:

声明:类中的slots标签之下

定义:通常放在cpp中

总结

使用connect函数绑定信号与槽,解除绑定:disconnect

发送方,发送的信号,接收方,接收方触发的槽函数

connect(产生信号的对象指针(谁产生信号), 信号,处理信号的对象指针(谁调用槽函数), 槽函数);

1、QT4及以前的用法

// 信号或槽函数重载时一定使用此方法

connect ( pb , SIGNAL ( clicked ( bool ) ) , this , SLOT ( pb_input_handler ( ) ) ) ;

2、QT5的用法

// 不适合用于有重载的情况

connect( pb , &QPushButton::clicked , this , &Widget::pb_input_handler ) ;

3、lambda表达式

// 不适合用于有重载的情况

// [ ]捕获参数:"="为使用值传递,"&"为使用地址传递

connect ( pb , &QPushButton::clicked , [ ]( ){

}) ;

槽函数的参数:

槽函数的参数是由信号传递

槽函数的参数个数 <= 信号的参数个数

槽函数的参数类型与对应的信号的参数类型一致

信号与槽对应关系:

1对1:一个信号对应一个槽函数

1对多:一个信号可以对应多个槽函数,当信号产生时所有绑定的槽函数按顺序执行

多对1:多个信号可以对应一个槽函数,只有其中任何一个信号产生都会调用一次这个槽函数

2、内存管理

对象树机制:QT中的对象可以组织成树状结构,每个对象可以有一个父对象,当父对象被销毁时,其所有子对象也会被自动销毁,从而简化了内存管理。

3、事件处理

QApplication类是QT应用程序的核心类,负责管理整个应用程序的生命周期、事件处理和全局资源,是QT应用程序的入口点和核心控制器。QApplication类提供了事件循环,负责接收和分发事件,处理用户输入和系统事件,并将事件发送给对应的对象进行处理。

相关推荐
意法半导体STM321 分钟前
【官方原创】STM32H7双核芯片通过 STlink连接失败问题分析 LAT1654
开发语言·前端·javascript·stm32·单片机·嵌入式硬件
深蓝海拓4 分钟前
使用@property将类方法包装为属性
开发语言·python
xiaoye-duck18 分钟前
【C++:unordered_set和unordered_map】 深度解析:使用、差异、性能与场景选择
开发语言·c++·stl
zjjsctcdl33 分钟前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
格林威36 分钟前
Baumer相机锂电池极片裁切毛刺检测:防止内部短路的 5 个核心方法,附 OpenCV+Halcon 实战代码!
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·视觉检测
顶点多余1 小时前
线程互斥+线程同步+生产消费模型
java·linux·开发语言·c++
Albert Edison1 小时前
【ProtoBuf 语法详解】更新消息|保留字段|未知字段
开发语言·c++·protobuf
feifeigo1231 小时前
近场声全息(NAH)数据与MATLAB实现
开发语言·matlab
fie88891 小时前
基于MATLAB的非线性模型预测控制(NMPC)在CSRT系统中的应用
开发语言·matlab
⑩-1 小时前
Java基础+集合框架-八股文
java·开发语言