以前在设计桌面应用程序时,我总是发现很难为不同的窗口构建一种干净的方式来相互通信。
例如:一个修改主窗口行为的设置/选项对话框窗口。
会使我的"主"(例如,应该只有一个窗口的实例可见在一个时间)单例是一个好主意吗?既然一次只能有一个人?
这将使单独的窗口之间的通信更容易、更清晰。
如果上面的是真的,那么我可以添加类似facade的方法来为其他窗口提供一个干净的接口。
例如:主窗口。setFont(字体);
Martin Fowler的GUI Architectures是关于这个主题的一个很好的读物,它涵盖了各种设计模式。例如,观察者同步模式可能在参考文章的上下文中为您工作。
如果可以的话,我建议您坚持使用一些知名的框架,因为编写自己的框架可能是一项艰巨的任务。
这是Qt得到正确的事情之一。如果你想和一个窗口通信,给它发送一个信号-然后窗口可以处理接收或不接收信号,发送者甚至不需要关心它是否存在。