Qt中多个对话框之间的通信,使用信号和槽或引用
Posted
技术标签:
【中文标题】Qt中多个对话框之间的通信,使用信号和槽或引用【英文标题】:Communication between multiple dialogs in Qt, using signals and slots or references 【发布时间】:2014-07-29 08:36:42 【问题描述】:我正在开发一个 Qt GUI 应用程序,在任何给定时间打开多个 QDialog。
当在单独的网络线程上接收到特殊数据时,这些对话框需要相互通信和通知。
通常,一个对话框将包含对至少另一个对话框的引用,因此可以使用它进行通信。
我的问题是,是使用此引用在另一个对话框中调用函数,还是发出信号并在另一个对话框的插槽中吸收该信号?我知道这可能是一种偏好 - 但我仍然想就此获得一些意见。
【问题讨论】:
【参考方案1】:我建议您首先查看Qt's Model View Programming。基于Model View Controller design pattern,您最好将数据(模型)和该数据的视图分开。
如果您遵循 Qt 的模型视图编程,您会发现当包含您的数据的模型发生更改时,会通知视图并做出相应的反应。您不需要从一个对话框向另一个对话框发送消息。
【讨论】:
以上是关于Qt中多个对话框之间的通信,使用信号和槽或引用的主要内容,如果未能解决你的问题,请参考以下文章