QT学习随笔---信号槽
来源:互联网 发布:js图片点击弹出放大 编辑:程序博客网 时间:2024/05/21 11:06
QT作为C++的一个类库。
槽函数,槽函数与普通的C++类成员函数区别不大,可以virtual,可以被继承、重写等,也具有public、protect、private属性。可以被其它类调用,参数类型任意。
connect()语句原型:
bool QObject::connect(const QObject* sender,const char * signal,const QObject * receiver,const char * member)
参数:发送者,信号,接收者,槽函数。
当指定信号signal时必须使用宏SIGNAL(),当指定槽函数时必须使用宏SLOT(),如果发送者与连接者属于同一个对象时,那么在connect调用中接受者参数可以忽略。
SIGNAL和SLOT宏,用于把参数转换成字符串。
信号槽还可以有扩展用法。
1、一个信号可以对应多个槽函数
connect(slider, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int)));
connect(slider, SIGNAL(valueChanged(int)),this, SLOT(updateStatusBarIndicator(int)));
类似上面的情况,槽函数会一个接一个的被调用,但是调用顺序不一定。
2、多个信号对应一个槽函数。
3、一个信号连接到另外一个信号。
connect(lineEdit, SIGNAL(textChanged(const QString &)),this, SIGNAL(updateRecord(const QString&)));
这是说,当第一个信号发出时,第二个信号被发出。除此之外,这种信号-信号的形式和信号-槽的形式没有什么区别。
大同小异,目测也可以一个信号对应多个信号,类似上面的第一种情况。
注意:
为了正确的连接信号槽,信号和槽的参数个数、类型以及出现的顺序都必须相同。
也存在特殊情况,可以信号的参数个数多于槽函数的参数个数。多出的参数就被自动忽略掉了。
但是信号的参数个数不能少于槽函数参数个数。
在自写的信号槽中,如果存在循环链接的情况,需要在槽函数中加入判断,防止死循环。
- QT学习随笔---信号槽
- Qt学习 信号/槽
- QT学习 信号与槽
- Qt学习笔记-----信号槽
- 多媒体信号处理学习随笔
- QT入门学习随笔
- Qt学习之路:初探信号槽
- QT信号和槽机制学习
- Qt学习笔记(二) 信号和槽
- Qt信号与槽的进一步学习
- QT学习笔记 QTimer 与信号 槽
- qt学习_自定义信号与槽
- Qt 学习之路--信号槽
- QT 学习之路--自定义信号槽
- Qt学习笔记5-信号槽机制
- QT学习之 信号与槽机制
- Qt信号槽机制源码学习
- Qt学习笔记---信号与槽
- poj 1580 String Matching 【字符串处理】
- Android学习——TouchEvent时间传递机制
- Object.defineProperty
- HDU 1754 I Hate It (线段树单点更新)
- js如何获取到当前年份 和当前的年份-1
- QT学习随笔---信号槽
- Linux模块中使用socket网络通信 client部分
- 天龙服务器代码分析
- How to manually create a crash dump file
- HTTP协议中几个状态码的含义:1xx(临时响应)
- 摘要提取
- 服务器与服务器传输数据慢
- db触发器
- UVa 10066 Twin Towers (DP 最长公共子序列)