我们都知道信号槽.
但很多同学不知道怎么用它在Qt里实现类与类通信.
首先要搞清楚,Qt类与类之间通信有2种情况:
(1) 两个类之间没有父子关系;
(2) 两个类之间有父子关系;
这篇文章讲的是有父子关系的2个类使用信号槽通信.
当然,没有父子关系的也能用信号槽通信,但是必须要有一个设计成单例模式.
Qt单例模式
假设有2个类: Father和Son.
它们有父子关系,其中Father包含了Son.
那么Father如何发送数据给Son或者Son如何发送数据给Father呢?
1 Father发送数据给Son父发给子这个很简单,就算不使用信号槽也可以实现.
例如Father想发"helloworld"给Son,就可以:
(1) 在Son里定义一个函数setData(QString data);
(2) Father里调用son->setDate("helloworld");即可;
.h如下:
class Son {
public: explicit Son(); void setData(QString data);private: QString buf;};class Father {
public: explicit Father(); Son *s;};
.cpp如下:
Son::S