【问题标题】:Is there still a place for MDI? [closed]MDI还有地方吗? [关闭]
【发布时间】:2009-01-28 00:49:42
【问题描述】:

尽管 MDI 是 considered harmful,但一些应用程序(甚至是 MS Office、Adobe 应用程序)仍然以纯粹的形式使用它,或者将其用作带有选项卡式/IDE 式界面的混合体。

MDI 接口是否仍然适用于某些应用程序?

我正在考虑一个应用程序,其中一个人通常一次处理多个文档,并且经常希望在多个文档端查看或在它们之间复制/粘贴。

例如Origin,其中一个项目中有多个工作表和图形窗口;选项卡式或类似 IDE 的界面会因为来回切换很多而更加不方便。

在mac上,一个应用程序有多个顶级窗口来解决这个问题是很自然和方便的,如果不使用MDI,Windows中的首选方式是什么?

【问题讨论】:

  • 第一个被认为有害的 MDI 链接已损坏。修复?
  • @ChristopherMahan:链接现已修复。 :)
  • @JeanHominal 谢谢!

标签: user-interface mdi


【解决方案1】:

MDI的缺点如下:

  • 一般要求用户学习和理解一组更复杂的窗口关系。

  • 许多简单的操作可能需要一个两步过程。例如,将期望的窗口带到前台可能需要用户首先将容器窗口向前移动,然后再将容器窗口中的右侧主窗口向前移动。调整窗口大小或最大化窗口可能意味着首先调整容器窗口,然后调整其中的主窗口。

  • 如果打开了多个容器窗口,用户可能会忘记哪个具有所需的主窗口,需要进行繁琐的搜索。

  • 用户很容易对最大化、图标化、分层和关闭窗口的双重方式感到困惑。例如,他们可能会关闭整个应用程序而不是容器窗口中的一个窗口。或者他们可能会“丢失”一个窗口,因为他们在容器窗口中将其图标化而没有意识到这一点。

  • 用户受限于他或她的窗口可以采用的尺寸和位置。假设我想同时查看一个应用程序的 3 个窗口和另一个应用程序的 1 个窗口。使用 SDI,我可以让每个窗口占据屏幕的一个象限,但使用 MDI 无法做到这一点。如果我想让 MDI 中的一个窗口大而另一个窗口小怎么办?我必须使容器窗口变大以容纳大窗口(它遮挡了其他应用程序的窗口),但这在看孩子时会浪费空间。

请注意,所有这些缺点也适用于选项卡式文档界面 (TDI),选项卡式界面还有一个缺点,即用户无法并排查看同一容器窗口中的两个文档。选项卡还会在您的窗口中添加混乱并消耗空间。但是,总体 TDI 的问题往往比 MDI 少,因此它们可能更适合特殊情况(请继续阅读)

总而言之,很难想到任何情况下都可以使用 MDI。它并不比 SDI 好,同时增加了更多的复杂性和导航开销,并且与其他应用程序的窗口配合不佳。

应用没有理由不能拥有多个顶级 SDI 窗口。即使使用像 Origin 这样的应用程序,只要在每个窗口中都能很好地识别项目,我认为项目分布在多个 SDI 窗口中没有问题。 SDI 还允许不同类型的窗口(例如,图形与工作表)具有不同的菜单和工具栏,而不是根据活动窗口隐藏或禁用项目(前者令人困惑,后者浪费空间)。

SDI 为您的用户提供了比 MDI 或 TDI 更大的灵活性。用户可以重叠或最大化窗口,并将任务栏/停靠栏用作事实上的选项卡界面。用户可以选择调整窗口大小和重新定位窗口,以便一次查看多个窗口。每个窗口都可以独立调整大小以优化屏幕空间。无论 MDI 或 TDI 有什么优势,您都可以增强 SDI 以使其也具有这些优势(例如,提供一个缩略图菜单,使窗口之间的切换比使用任务栏更快并且与选择选项卡相当,或者提供一个图标化所有一键打开应用程序的窗口)。

除非您有令人信服的理由使用 TDI,否则请使用 SDI 以实现这种灵活性。令人信服的原因包括以下部分:

  • 每个选项卡都用于无关的高阶任务,用户不会频繁地在选项卡之间切换或跨选项卡比较信息。

  • 您正在与非常低端的用户一起工作,他们对任务栏/停靠栏和多个窗口一无所知或感到困惑,并且不知道如何调整窗口大小(似乎引人注目的选项卡图像比此类用户的任务栏)。

  • 您预计通常会有大量选项卡(例如,4 个或更多),并且您可以以一种比操作系统更有效的方式控制它们的显示,如果它们是任务栏/码头(例如,关于订单和标签)。

  • 使用 SDI,您会遇到用户将非活动窗口的工具栏或调色板与活动窗口混淆的问题。

  • 选项卡的数量固定并永久打开(例如,当每个选项卡是同一数据对象的不同组件时)。用户不必为尝试区分关闭选项卡和关闭整个窗口而烦恼;找出要导航到的窗口不是问题,因为所有窗口都有相同的选项卡。

  • 实际上只有一种方法可以正确安排任务数据,用户之间或他们实际使用应用程序的目的没有差异。您最好为用户设置选项卡和主从窗格的组合,而不是依靠用户来正确排列和调整 SDI 窗口。

总而言之,考虑到您的用户能力、应用复杂性和任务结构,如果您的应用能够比用户/操作系统更好地管理内容显示,则使用 TDI,否则使用 SDI。

【讨论】:

    【解决方案2】:

    请注意,您使用的示例(MS Office 和 Adob​​e 应用程序)是大型程序并且具有许多功能。用户将在该程序的大部分生命周期中处理该程序,并且只有该程序

    较新版本的 MS Office (2007) 和 Adob​​e Photoshop (CS4) 分别使用多个窗口和选项卡。

    请注意,在 Windows 7 中,MDI 可能会因为 Microsoft 的 API 提供的选项卡的额外功能而更加流行(尽管您不必严格使用选项卡 - MDI 窗口可以工作,但对于用户比平时)。

    【讨论】:

      【解决方案3】:

      老式的 MDI(在哪里切换文档,您必须通过 Windows 菜单)很烦人。较新的 MDI(如 Opera 和 Mozilla 中的选项卡)使文档之间的切换变得非常容易,并且似乎已被很好地接受。如果您在没有 MDI 的情况下打开了多个文档,它们也不会弄乱您的任务栏。

      【讨论】:

        【解决方案4】:

        MDI 的主要优点是当您想要同时跟踪两个或多个窗口时,这些窗口需要组合在一起。例如,一个窗口中有一个正在运行的进程,但您需要在另一个窗口上工作,MDI 是最理想的。

        【讨论】:

          【解决方案5】:

          我同意 slavy13(旧 MDI = 不好,新 MDI = 好得多)。但不要使用 Microsoft Excel 之类的程序作为模型。哎呀!无论您打开了多少电子表格(这可能是也可能不是您的偏好),您的桌面上都会有一个窗口。但是您打开的每个文档都会有一个任务栏图标。同样,您的 Alt+Tab 窗口对于您打开的每个文档都有一个图标。另外,其中还有一个附加图标,仅用于“Excel”,可将您带到恰好是“当前”的任何文档。所以,是的,像 Mozilla 一样做你的 MDI。或者至少让您的用户可以选择切换到更简洁的样式。

          为了更简洁地回答你的问题,我觉得答案是肯定的,MDI 在某些情况下仍然是合适的。但是,无论如何,适度是关键。

          【讨论】:

            【解决方案6】:

            似乎多个顶级窗口是要走的路。至于是否应该有一个全局应用程序实例或每个文档一个,我认为取决于您。它对用户不可见。

            【讨论】:

              【解决方案7】:

              MDI 只有一个好处:

              使用大量资源的程序(例如 Adob​​e Photoshop)通常具有 MDI,因为一次运行多个实例的成本过高。

              但您不应该一开始就开发消耗大量资源的程序。

              【讨论】:

              • 值得一提的是,程序可以有多个顶级窗口并且仍然属于同一个进程 - 例如Firefox 中的“新窗口”选项。
              • @Andrew,我就是这么想的。
              【解决方案8】:

              如果大量屏幕空间将用于在许多窗口之间共享的内容,我可以看到 MDI 的一个优势。将此类材料放在封闭窗口的顶部或侧面可能比在每个 SDI 窗口中重复出现或出现在与 SDI 窗口完全分开的窗口中更合乎逻辑。例如,一个聊天程序可能有一个状态窗格和一个控制窗格。将它们在视觉上与聊天窗口相关联可能比将它们作为独立窗口更好。

              【讨论】:

                猜你喜欢
                • 2012-10-30
                • 2010-09-13
                • 2023-03-26
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-04-03
                • 2012-07-08
                • 1970-01-01
                相关资源
                最近更新 更多