Qt中的信号和槽
- 信号槽的优点:松散耦合;信号的发送端和接收端本身是没有关联的,通过connect连接起来
- 连接方式:connect
- 参数:
- 参数1:信号的发送者
- 参数2:发送的信号(函数的地址)
- 参数3:信号的接收者
- 参数4:处理的槽函数(函数的地址)
- connect(btn, &QPushButton::click, this, &QWidget::close)
- 松散耦合
- 自定义的信号和槽:
- 自定义信号:写到signals下,返回值类型为void;需要声明,不需要实现;可以有参数,可以重载
- 自定义槽函数,返回值类型为void;需要声明,也需要实现;可以有参数,可以重载;写到public slots下或者public或者全局函数下
- 触发自定义的信号:emit
- 当自定义的信号和槽出现重载:
- 需要利用函数指针明确地指向函数的地址
- void(Teacher:: *teacherSignal)(QString) = &Teacher::hungry;
- QString转成char*:先转为QByteArray(.toUtf8()),再转为char*(.data()&