Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 简单桌面GUI体系结构_User Interface_Architecture - Fatal编程技术网

User interface 简单桌面GUI体系结构

User interface 简单桌面GUI体系结构,user-interface,architecture,User Interface,Architecture,以前在设计桌面应用程序时,我总是发现很难为不同的窗口构建一种干净的方式来相互通信 例如:修改主窗口行为的设置/选项对话框窗口 让我的“Main”(例如,一次只能看到一个窗口实例)成为一个好主意吗?既然一次只能有一个 这将使单独的窗口更容易、更干净地进行通信 如果以上是真的,那么我可以为其他窗口添加类似于Facade的干净界面方法 例如: main window.setFont(字体f) 感谢您的宝贵意见。这是Qt正确的做法之一。如果您想与窗口通信,请向其发送信号,那么窗口可以处理接收信号与否的问

以前在设计桌面应用程序时,我总是发现很难为不同的窗口构建一种干净的方式来相互通信

例如:修改主窗口行为的设置/选项对话框窗口

让我的“Main”(例如,一次只能看到一个窗口实例)成为一个好主意吗?既然一次只能有一个

这将使单独的窗口更容易、更干净地进行通信

如果以上是真的,那么我可以为其他窗口添加类似于Facade的干净界面方法

例如: main window.setFont(字体f)


感谢您的宝贵意见。

这是Qt正确的做法之一。如果您想与窗口通信,请向其发送信号,那么窗口可以处理接收信号与否的问题,发送者甚至不需要关心信号是否存在。

马丁·福勒(Martin Fowler)提供了一本关于该主题的好书,其中涵盖了各种设计模式。例如,该模式可能在引用文章的上下文中适用


如果可以,我建议您坚持使用一些众所周知的框架,因为编写自己的框架可能是一项艰巨的任务。

两个窗口是否都知道另一个?IE是负责显示设置窗口的主窗口中的代码,例如,您是否考虑将应用程序对象作为单件来帮助Windows通信?@ 9000。是的,我有。“但这看起来有点整洁,而且可以扩展。”拉塞诉卡尔森。我猜在我的简单例子中是这样的。在那里,我可以使用一个内部类。但我考虑了更大的应用。谢谢你的建议。我不想设计一个完整的框架,只是想用一种很好的方式来组织我的GUI…回答OpenCV的问题很令人沮丧,不是吗?很少有ppl upvote,OP几乎从来没有回来接受答案。@karlphillip-问题还在于openCV“官方”列表是一个糟糕的yahoo groups网站-高级openCV用户也无处可去