QT信号槽多次连接引起的错误修改
来源:互联网 发布:17%退税率出口退税算法 编辑:程序博客网 时间:2024/05/19 03:28
本文由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
- QT信号槽多次连接引起的错误修改
- Qt 信号槽多次连接后,会多次触发槽函数
- Qt多次链接connect函数的信号槽会调用多次问题
- QT信号槽的跨线程连接
- QT信号与槽的自动连接
- 简单的Qt连接信号与槽
- 104-信号引起的竞争错误
- QT信号槽连接方式
- Qt 信号槽连接方式
- 有关qt的信号槽错误的处理方法
- qt信号槽之创建和连接自定义的槽
- Qt跨线程信号和槽的连接
- Qt:信号与槽的连接函数问题
- Qt跨线程信号和槽的连接
- qt编程信号和槽连接应注意的问题
- 信号和槽的连接类型 Qt::ConnectionType 解析
- Qt信号和槽连接方式的选择
- QT 类与窗口之间的信号槽连接
- Not Fibonacci(矩阵连乘)
- ZOJ 3600 Taxi Fare (数学)
- iOS多线程
- LaTeX技巧001:ctex下使用其他中文字体
- 使用Jmeter进行http接口测试
- QT信号槽多次连接引起的错误修改
- PHP第三方登录—QQ登录
- centos 的权限管理--自主访问控制DAC和访问控制列表 ACL
- listener.ora
- hdu_4824_Disk Schedule(dp)
- hdoj 5681 zxa and wifi
- leetcode.10. Regular Expression Matching
- osg布告板技术(Billboard)
- 虚幻4 shader的使用