一.信号和槽概述
谈及信号,很容易联想到在Linux系统中所分享到的信号。那么Linux信号和Qt信息有什么不同?
在 Qt 中,用户和控件的每次交互过程称为⼀个事件。比如 "用户点击按钮" 是⼀个事件,"用户关 闭窗口" 也是⼀个事件。每个事件都会发出⼀个信号,例如用户点击按钮会发出 "按钮被点击" 的信 号,用户关闭窗口会发出 "窗口被关闭" 的信号。
Qt信号同样包含三个要素:
- 由哪个控件发出。
- 信号的类型,如点击按钮信号,移动输入框光标信号等等。
- 信号的处理方式:槽(slot),即函数。
槽函数,就是对信号进行响应的函数,将信号与对应的槽函数关联之后,只要信号发出,就能执行对应的槽函数功能。
二.connect关联
在Qt中,想要将信号和槽函数关联起来,可以使用函数connect。
connect(const QObject *sender,
const char *signal,
const QObject *receiver,
const char *method,
Qt::ConnectionType type = Qt::AutoConnection);
sender:信号的发送者;signal:发送的信号(信号函数);receiver:信号的接收者;method:接收信号的槽函数;