四、信号和槽机制(重点掌握)
1、概念
信号和槽是QT自行定义的一种通信机制,实现对象之间的数据交互;当对象状态发生改变时,将会发送信号,该信号可以被其它对象接收,该对象接收到信号以后会执行一个成员函数(槽);
eg:在Qt应用程序中创建一个标签组件和一个按钮组件,点击按钮关闭标签。
2、定义
1)信号
eg:
class QPushButton{
Q_OBJECT // 元对象
signals:
void clicked(); // 点击按钮对象时发送该信号
};
2)槽
eg:
class QLabel:public QObject{
Q_OBJECT // 元对象
public slots:
void close(); // 可以连接到其它对象的信号函数
};
3、信号和槽连接
QMetaObject::Connection QObject::connect(
const QObject *sender, // 信号的发送对象指针
const char *signal, // 信号函数
const QObject *receiver, // 信号接收对象指针
const char *methd, // 槽函数
Qt::ConnectionType type = Qt::AutoConnection // 连接的方式
)
@signal:信号函数
// 将信号函数转换成const char*
SIGNAL(信号函数(参数表))
@method:槽函数
// 将槽函数转换成
const char* SLOT(槽函数(参数表));