QT信号槽多次连接引起的错误修改

本文由Markdown语法编辑器编辑完成。

1. 问题描述:

在有关QT的编程中,遇到了这样的问题,当由于对QT信号槽连接机制的不理解,导致了对同一个信号槽进行了两次或以上的连接,结果在之后的代码调试中便发生了与自己期望不同的结果。通过在网络上查找相关的解答,得出了解答。原因是QT的同一个信号和槽函数是可以进行多次连接的,但是之后,当触发该信号的时候,槽函数便会被触发N次。N即是该信号和槽函数连接的次数。
具体的解答可以从以下Stackoverflow中查阅。
http://stackoverflow.com/questions/3530590/qt-signals-and-slot-connected-twice-what-happens

鉴于QT的信号槽机制是非常重要的特性。以下对QT的信号槽机制进行简要的介绍:

2. QT的信号槽机制:

QT信号槽(Signal-Slot)机制是QT最重要也是最基础的特性之一。通过信号槽,能够使Qt的各个组件在不知道对方的情形下互相进行通讯,这样便实现了类之间的最大程度的解耦。
关于QT的信号槽机制,可以阅读以下几篇博客文章:

(1) Qt学习之路(9):深入了解信号槽
http://devbean.blog.51cto.com/448512/199461

(2) Qt信号槽的实现
http://www.devbean.net/2012/12/how-qt-signals-and-slots-work/

信号槽连接的语句原型为:
QT 4.8.3:
Connect(sender, SIGNAL(signal), receiver, SLOT(slot));
QT 5.1.0:
Connect(sender, &Class::signal, receiver, &Class::slot);

关于Qt的信号槽的几个特性:
1. 一个信号可以同时和多个槽函数连接;
2. 多个信号可以连接到一个槽函数上;
3. 一个信号可以连接到另外的一个信号;
4. 信号槽函数既可以连接,也可以主动断开连接;
5. 信号和信号,信号和槽函数在连接的时候,可以传递参数,参数的类型和个数必须对应。

参考链接:
http://stackoverflow.com/questions/3530590/qt-signals-and-slot-connected-twice-what-happens

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inter_peng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值