在初学Qt时这种不同界面、跨类通信的问题困扰了我很久,而且网上很少有文章完整的介绍Qt中不同的跨类通信问题,现在项目完结正好总结一下自己的想法。
比如现在有三个界面类,分别为A、B、C,其中A为父类,B、C都为A的子类界面。
① 最常见的情况是子类向父类发送信号,在父类执行槽函数。
- B→A (C→A)
//A.cpp
#include "A.h"
#include "B.h"
B *b = new B(this);
connect(b,&B::sig,this,&A::slot);
//connect(c,&C::sig,this,&A::slot);
② 两个子类相互通信,通过父类连接。
- C→B (B→C)
//A.cpp
#include "A.h"
#include "B.h"
#