核心函数为
QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
参数为
1.信号发生对象
2.信号发生对象的信号
3.槽对象
4.槽对象的槽函数
函数作用:连接信号和槽,使得信号发生对象发射信号发生时槽对象执行槽函数
1.信号发生对象/槽对象:const QObject* 类型,大部分qt有的组件都是QObject的子类,直接用就行
2.信号:信号是一个只有声明没有内容的函数,唯一的作用就是当调用发射时将参数发射到槽对象槽函数的参数里
3.槽函数:信号发射后执行的函数,参数数量类型顺序保持和信号一样
下面写一个例子,自建一个信号和槽进行验证
新建一个widget,加一个按键,转到槽函数
在类声明中新建一个信号和槽函数
信号固定有类型所以不用前缀
信号不需要内容定义,在槽函数定义里面写一个打印
使用pushbutton的clicked来发射我们定义的信号,发射的关键字为emit
connect连接信号和槽
注意:信号用SIGNAL()宏包起来,槽函数用SLOT()包起来,并且如果有参数要把参数列表类型完整的写入,还有一个,函数不要写前缀是哪个对象的,连接时自动关联
执行,按button,执行