1.连接方式:connect(参数1:信号的发送者, 参数2:发送的信号,参数3: 信号的接收者, 参数4:处理信号的槽函数)
connect(mybut, &MyPushButton::clicked, this, &MyWidget::close);
// (参数1:信号的发送者, 参数2:发送的信号,参数3: 信号的接收者, 参数4:处理信号的槽函数)
//松散耦合
//disconnect()
2.自定义信号和槽
信号:
写到signals下
返回 void
需要声明,不需要实现
可以有参数,可以重载
槽函数:
需要声明,也需要实现
可以有参数,可以重载
写到public slots下,或者public或者全局下
触发自定义信号: emit
//信号连接信号 信号再连接槽函数
//信号连接槽函数
//一个信号可以连接多个槽函数,
//多个信号可以连接同一个槽函数 -->信号类似广播出去,需要的自己取响应
当自定义信号和槽出现重载:
//需要利用函数指针,明确指向函数的地址
void (Teachar::*teacharSignal)(QString) = &Teachar::hungry;
QString 转成 char *
//QString -> char * 先转成 QByteArray, 再转char *
qDebug() <<foodName.toUtf8().data() <<endl;