[QT]信号与槽机制
来源:互联网 发布:陕西网络干部学院 编辑:程序博客网 时间:2024/05/16 12:57
信号(signal)和槽(slot)
- 类似于windows中的消息和消息响应
- 都是通过C++类成员函数实现的
- 信号和槽是通过连接实现相互关联的
- 包含信号或槽的类必须从QObject继承
信号(signal)和槽(slot)——声明
class Employee : public QObject{Q_OBJECTpublic:Employee();int salary() const;public slots:void setSalary(int newSalary);signals:void salaryChanged(int newSalary);private:int mySalary;};emit salaryChanged(50);
信号(signal)和槽(slot)——连接
connect(sender, SIGNAL(signal),receiver, SLOT(slot));
1.一个信号可以连接多个槽,这些槽被调用的顺序是随机的connect(slider, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int)));connect(slider, SIGNAL(valueChanged(int)),this, SLOT(updateStatusBarIndicator(int)));2.一个槽可以连接多个信号,每个信号都可以触发该槽connect(lcd, SIGNAL(overflow()),this, SLOT(handleMathError()));connect(calculator, SIGNAL(divisionByZero()),this, SLOT(handleMathError()));3.信号之间可以相互连接,相互连接的信号会相互触发connect(lineEdit,SIGNAL(textChanged(const QString &)),this,SIGNAL(updateRecord(const QString &)));4.槽和槽之间不能相互连接
信号和信号、信号和槽之间在运行时连接,而且可以在运行时取消连接;Qt会在适当的时候自动取消连接,所以一般没有必要手动取消连接connect(lcd, SIGNAL(overflow()),this, SLOT(handleMathError()));disconnect(lcd, SIGNAL(overflow()),this, SLOT(handleMathError()));
信号和槽需要具有相同的参数列表;如果信号的参数比槽多,那么多余的参数会被忽略;如果参数列表不匹配,Qt会产生运行时错误信息connect(ftp, SIGNAL(rawCommandReply(int, const QString&)),this, SLOT(processReply(int, const QString&)));connect(ftp, SIGNAL(rawCommandReply(int, const QString&)),this, SLOT(checkErrorCode(int)));
参考:QT 的信号与槽机制介绍
- Qt信号与槽机制
- QT:信号与槽机制
- QT信号与槽机制
- QT信号与槽机制
- Qt 信号与槽机制
- QT信号与槽机制
- [QT]信号与槽机制
- Qt 信号与槽机制
- Qt--信号与槽机制
- Qt 信号与槽机制
- Qt信号与槽机制
- QT源码之Qt信号槽机制与事件机制
- QT的信号与槽机制介绍
- QT的信号与槽机制介绍
- QT的信号与槽机制介绍
- Qt的信号与槽机制介绍
- QT的信号与槽机制介绍
- QT的信号与槽机制介绍
- ZOJ 3725 Painting Storages DP+排列计数
- 网络流(一).基本概念和算法
- linux基础
- Codechef Bytecode 1-10
- HDU2080 夹角有多大II 几何
- [QT]信号与槽机制
- [leetcode] Flatten Binary Tree to Linked List
- C++虚函数的原理及实现
- VC USB HID开发笔记
- zoj 2185||poj 1969||(数学)
- POJ2503 Babelfish
- MAC 10.6及以上安装PHP不能显示phpinfo的问题及安装过程
- java-构造函数和静态初始化
- USB HID 下位机开发笔记