GUI 设计 - 多种表单、模拟 MDI(选项卡)与 PageControl

发布于 2024-08-02 02:16:44 字数 187 浏览 1 评论 0原文

您更喜欢以下哪种风格?

  • 执行任务的应用程序会打开新表单
  • 一个将各种“表单”保留在不同选项卡中的应用程序
  • 一个基于 PageControl 的应用程序,并根据您想要执行的操作显示正确的选项卡。
  • 还有什么

你还有关于 gui 设计的好的链接吗?

which of the following styles do you prefer?

  • An application which to perform tasks opens new forms
  • An application which keeps the various "forms" in different tabs
  • An application which is based on a PageControl and shows you the right tab depending on what you want to do.
  • Something else

Also do you have any good links for gui design?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

羁〃客ぐ 2024-08-09 02:16:44

从程序员的角度来看,PageControl 解决方案很快就会失控。 可能有太多的代码,当然还有一种表单上的许多组件。 (最初这个问题被标记为 Delphi,所以我从那里开始。)

从用户的角度来看,“打开新窗口”范例常常令人困惑。 我们人们往往认为我们能够同时处理多项任务并处理许多打开的窗口和任务,但事实并非如此(我们像计算机一样在任务切换上浪费时间,并增加了准确性的损失)。

显然,这实际上取决于应用程序的类型。 但我倾向于 Chrome 和 Firefox 在其最新版本中展示的范例:

  • 将各种表单保留在不同的选项卡中,
  • 让用户将选项卡分离到自己的表单中(通过拖放进行停靠和取消停靠)
  • 添加一种很好的导航

方式也可以实现类似 SDI 的东西作为应用程序的主屏幕。 看看“外观风格”之类的东西。 导航、对象列表、不同窗格中的对象详细信息、一些附加窗格(例如驾驶舱)。 然后为某些任务(一些模态,一些非模态)打开一个新窗口/表单,但寿命很短。 电子邮件写入后,将被发送并关闭窗口。 但如果我有能力的话,我有可能同时处理多封电子邮件。

看看问题所在。 如果它具有仪表板特征,请采用“外观风格”左右。 如果用户分布广泛、异构、不懂计算机,请使用 SDI 或选项卡上的表单。 如果你为程序员写作,你可能会选择多种形式,只是因为我们倾向于认为我们可以处理它。 它适用于多个屏幕(希望如此)。

From a programmers point of view, the PageControl solution quickly gets out of hand. Possibly too much code and certainly to many components on one form. (Originally this question was tagged Delphi, so I go from there.)

From a users point of view, the "opens new window" paradigm often is confusing. We people tend to think that we are able to multitask and handle many open windows and tasks, but we are not (we task switch at a loss of time like computers and add loss of accuracy).

Obviously this really depends on the type of application. But I would tend to a paradigm as Chrome and Firefox show in their latest incarnations:

  • keep the various forms in different tabs
  • let the user detach a tab into its own form (dock and undock via drag%drop)
  • add a good way of navigation

I implement something like an SDI as main screen of an application too. Look at something like "outlook style". Navigation, list of objects, object details in different panes, some additional panes like a cockpit. And then open a new window/form for certain tasks (some modal, some non modal), but short lived. After the email is written, it is sent and closes the window. But I have, if I am capable of doing so, the possibility to work on multiple emails at the time.

Look at the problem. If it has dashboard character, take "outlook style" or so. If the users are a wide spread, heterogeneous, non computer savvy crowd, use SDI or forms on tabs. If you write for programmers, you might go for multiple forms, just because we tend to think that we can handle it. And it works for multiple screens (hopefully).

琉璃梦幻 2024-08-09 02:16:44

在我看来,MDI 是最糟糕的选择。 没有什么比调整一堆窗户的大小、或者平铺它们或其他什么更让我讨厌的了。

选项卡也很糟糕,特别是如果您有不止一行(或者如果您有一行但仍然有更多的选项卡超出了容纳范围,并且必须使用一些时髦的滚动条或“更多”按钮)。

我宁愿看到程序员思考问题,并根据我作为用户所做的事情向我展示我需要看到的内容。 在程序中将不同的用户界面实现为用户控件(而不是离散形式),然后根据当前上下文显示或隐藏它们是正确的方法。

MDI is the worst choice possible, in my opinion. There's nothing I hate more than having to resize a bunch of windows, or tile them or whatever.

Tabs are bad, too, especially if you have more than one row of them (or if you have one row but still have more tabs than will fit, and have to use some funky scrollbar or "more" button with them).

I would rather see the programmer think about the problem and just show me what I need to see based on what I'm doing as a user. Implementing the different user interfaces in your programs as user controls (as opposed to discrete forms) and then showing them or hiding them based on the current context is the way to go.

握住我的手 2024-08-09 02:16:44

如果您为每个选项卡内容使用框架,则选项卡式表单是一个好主意。 这可以让您避免在一个表单单元中获取过多代码的麻烦。 尝试执行与 Google Chrome 相同的操作。 我个人创建了一个菜单,其中的选项实际上是仅在用户请求时加载的框架,因此除非用户需要将它们全部打开,否则永远不会有许多选项卡可见。

The Tabbed form is a good idea if you use a frame for each tab content. This keeps you out of trouble from getting too much code in one single form unit. Try to do the same as Google Chrome. I personally create a menu with the options that are actually frames that loads only when the user asks for it, so there will never be many tabs visible unless the user needs them all opened.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文