QT必学-信号与槽

我们在多线程,多进程编程中会遇到信号量,但这里的信号和我们之前理解的完全不同!

信号的理解:

信号(Signal)用于在特定事件发生时通知其他对象。特定的时间 可以是一个函数的被调用、一次鼠标的点击,或者是键盘的一次输入等等。

槽的理解:

就是对信号响应的函数。就是当信号发生,那么槽(函数)就开始运行了。

代码注意点:

信号:

1、自定义信号写在类的signals下面
2、只需要声明,不需要实现
3、返回值必须是void类型
4、可以有参数 可以重载

槽:

1、只能写在public slots:下面,但是新版本的Qt可以直接用
2、必须是全局 或者 public下面
3、必须要实现
4、可以有参数 可以重载

信号和槽的连接:

用 QObject::connect() 函数实现的,其基本格式是:
QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
参数 1、信号的发送者
参数 2、发送的信号
参数 3、信号的接收者
参数 4、处理函数(槽函数)

实战

1、创建两个对象,一个用来发送信号,一个用来当槽。

2、将信号和槽绑定(告诉程序,信号发生后要调用什么槽),红色的框是要补充的代码。

编译运行后,我们并没有调用boy2里面的agree()函数,但是会在输出界面看到打印信息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值