Qt 信号与信号,信号与槽

在写程序的时候,一直用到Qt的信号与槽机制

1、我们可以一个信号连接多个槽例如:

connect(slider, SIGNAL(valueChanged(int)), this, SLOT(upDateValue(int)));

connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));

slider发射这个信号后,以不确定的顺序执行这两个对应的槽函数。

2、也可以多个信号连接同一个槽,例如:

connect(slider, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));

connect(AScanAction, SIGNAL(dataComming(int)),  this, SLOT(setValue(int)));

无论发射的是哪一个信号,这个setValue(int)槽函数都会被执行。

3、连接的移除

disconnect(slider, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));

这种情况出现的比较少,当删除对象时,Qt会自动移除和这个对象相关的所有连接。

4、我们很容易就忘记了,信号与信号之间也是可以建立连接的,例如:

connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SIGNAL(updateRecord(const QString &)));

第一个信号发射时,第二个信号也会被发射,这样在写多线程或者其他复杂程序的时候,就显得很简洁,方便,节省资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值