学习Qt白皮书第一天早晨6:20到7:18

本文对比了传统回调机制与Qt的信号与槽机制的区别,介绍了如何利用信号与槽进行对象间的通信,以及Qt元对象编译器MOC在信号与槽机制中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、原有回调机制,信号与槽 机制的不同

      使用原有回调机制,若要将某一代码与按钮关联在一起,必须将函数指针传输给该按钮,单击这个按钮时。系统将调用函数。

 

           Qt 的信号和槽机制则不同。发生事件时,Qt 窗体将会发出信号。例如,单击某一
按钮时,该按钮将发出“clicked”信号。编程人员要想连接一个信号可以创建一个函数(即
“槽”)、并调用 connect() 函数将信号与槽关联起来。Qt 的信号和槽机制不要求各类彼
此感知,这样可以更轻松地开发极易重新使用的类。由于信号和槽都属于类型安全的,因
此,类型错误都将报告为警告,因此不会发生崩溃。应用信号与槽实现 对象间通信。

connect(对象1名,SINGAL(),对象2名,SLOT())

 

           槽即可以作为成员函数,也可以和信号通过connect相连、

、元对象编译器

     

       信号和槽机制是采用标准C++来实现的,该实现使用C++预处理器和QT

所包括的MOC(元对象编译器)。。MOC 读取应用程序的头文件,并生成必要的代码。来支持信号和槽。qmake会生产的Makefile会自动调用元对象编译器,开发人员无需知道这是怎么发生的。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值