2012-01-03 23 views
1

我想知道有没有这样的参考或文档,程序员突出了应用程序设计特别是GUI的良好实践。我现在正在使用一个非常大的GUI应用程序(MultiThreading,Tabs,Socket Communication),它看起来不像应该那么优雅(至少有这种感觉,因为我没有很多经验)。特别针对qt的GUI设计指南

我在好做法特别感兴趣的相关

  • 何时使用线程?我应该使用它们来进行计算,处理事件等吗?
  • 我如何才能让应用更加灵活(即添加更多的面板,或者通过动态库的功能可能吗?)
  • 请告诉我管理一个GUI面板或标签的最佳方式(辛格尔顿,工厂类,对象池)
+0

你能提供更多关于你的意思是优雅的信息吗?它是否扩展这个GUI应用程序更多的面板是一种痛苦?它增加了更多的功能,这是一种痛苦吗?它增加了更多的后台进程,这是一个痛苦? – 2012-01-03 17:56:06

+0

好的,我会在原文中详细说明 – Anonymous 2012-01-03 17:57:25

回答

1

我没有一本书,但如果您希望GUI应用程序具有灵活性,则需要“集中”GUI和后端之间的连接。因此,当GUI组件A被连接到一个后端组件B,而不是连接

A -> B 

A -> GUIDispatcher -> BackendDispatcher-> B 

GUIDispatcher总是发送到BackendDispatcher,而每个分配器的唯一信号到相关的类。这听起来适得其反,以增加更多的信号和槽,但至少你的程序的控制流程更简单:

  • GUI对象和其他对象之间的所有连接都在同一个地方定义。
  • 一侧的组件不需要知道他在另一侧连接的是谁,所以重构更容易一些。
  • 如果有一个不总是启用的组件,您不需要专门处理它。
  • 如果可能的话发送无国籍数据仅供

Spectrum Analyzer demo Qt库中。

+0

谢谢,这是我一直在寻找。但有没有使用标签小部件等的例子? – Anonymous 2012-01-04 19:52:13

+0

首先看看演示[这里](http://doc.qt.nokia.com/4.7-snapshot/demos。HTML)。我的方法是运行演示程序,对它进行一些演示,如果有某种行为,我会喜欢我去看看实现,或搜索关于它的帖子。从[网页浏览器]开始(http://doc.qt.nokia.com/4.7-snapshot/demos-browser.html) – UmNyobe 2012-01-05 12:13:25

-1

Here是Qt上的最新文档。

如果你只是想要QtGui模块here它是。

+0

我对学习大型软件设计更感兴趣,我已经意识到了qt文档。 – Anonymous 2012-01-03 18:03:56

1

您的意思是GUI样式指南 - 在这种情况下,它将取决于平台,Android的GUI标准与Windows7不同。

或者你是指如何构建一个Qt应用程序?然后请参阅Advanced-Qt-Programming-Creating-Development本书