简说Qt信号和槽

目录

信号和槽是什么

Qt中的connect

使用信号和槽的前提

信号和槽关联的两种方式

自定义信号和自定义槽

​编辑

触发自定义信号 

disconnect 断开信号和槽的连接


信号和槽是什么

我们写的 GUI程序,就是为了让用户操作的,就是要和用户进行交互,这个过程中,就需要关注用户的具体操作是什么?

说到信号,信号源,信号类型,信号的处理方式,与Linux中的信号异曲同工之妙,

槽,本质上就是回调函数,比如C语言中的qsort函数,STL中的仿函数,lambda函数,信号处理函数,线程入口函数,epoll的基于回调的机制。

Qt中的connect

Qt中的connect和网络中的connect没有任何关系,Qt中的connect是用来实现信号和槽之前的多对多关系。

使用信号和槽的前提

如果某个类想要使用信号或者槽,就必须要在类的最开始引入Q_OBJECT这个宏。

信号和槽关联的两种方式

connect(哪个空间发出的信号,啥信号,谁处理这个信号,处理方式是什么);

ui界面右键控件,转到槽:

第二种方式,qmake生成的ui_weight.h中,有下面这个方法,他的作用是启用用名称连接信号和槽

QMetaObject::connectSlotsByName(Widget);

 

自定义信号和自定义槽

public slots:

public signals:

 

 自定义槽函数可以使用lambda函数。

触发自定义信号 

通过emit关键字手动触发信号

disconnect 断开信号和槽的连接

connect()两个可以让同一个信号被两个槽函数执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值