0x01 原理介绍
Qt两个窗口之间传递数据实际上还是利用了信号与槽的概念来实现。
本质上讲,我们只需要实现A窗口发射信号,B窗口槽函数响应信号即可。
首先我们在A窗口的头文件中定义发射的信号:
signals:
void sendSignal(QString msg);
然后在B窗口的头文件中定义槽函数:
private slots:
void recvSignal(QString msg);
最后我们需要将信号与槽连接起来,推荐在主窗口的构造函数内实现信号与槽的连接:
this->connect(this->ui->widget1, SIGNAL(sendSignal(QString)), this->ui->widget2, SLOT(recvSignal(QString)));
最后的最后,我们实现B窗口中的槽函数内容即可:
void widget2::recvSignal(QString msg) {
// TODO: 实现你需要的逻辑即可
}