Qt 窗口间通信

窗口间的通信是很常见的问题,针对于两者:父窗口和子窗口。(两个类是关联关系:一个类作为另外一个类的成员变量)又可以细分为父向子传和子向父传。

父—>子:

以一个简单的例子进行说明:

Qt 窗口间通信_第1张图片

1.在父类中定义自类为成员变量Child *ch;show()或exec()启动子窗口

2.子类:定义signals:send(); 定义一个私有成员用于存储通信的内容,并给出get,set方法。

3.父类:定义 slots:receive();在构造函数中加入connect(ch,SIGNAL(send()),this,SLOT(receive()));

子—>父:

在子类中定义一个带参成员函数,在父类创建一个子类对象,调用其方法函数,将值传给参数变量。


两种情况的区别在于父类可以调用子类,而子类却无法调用父类。(因为在Qt中不支持两个类之间互为成员变量!!!)


你可能感兴趣的:(Qt)