2009-01-28 38 views
6

儘管MDI是considered harmful,但幾個應用程序(甚至是MS Office,Adobe應用程序)仍然以純粹的形式使用它,或者將其作爲帶有選項卡式/ IDE類接口的混合使用。MDI還有嗎?

MDI界面是否仍適用於某些應用?

我在想一個應用程序,其中一個通常與多個文檔一起工作,並且經常希望有多個文檔一面查看或複製/粘貼它們之間。

一個例子是Origin,其中一個工程中有多個工作表和圖形窗口;一個選項卡式或類似IDE的界面在來回切換時會更不方便。

在Mac上,應用程序具有多個頂層窗口來解決這個問題是很自然和方便的,如果不使用MDI,Windows中的首選方法是什麼?

+2

認爲有害的MDI的第一個鏈接被破壞。固定? – 2011-09-20 19:17:33

+0

@ChristopherMahan:鏈接現已修復。 :) – 2014-10-10 12:49:34

回答

5

請注意,您使用的實例(MS Office和Adobe應用程序)是大項目,並有大量的功能。用戶將在該程序的大部分生命週期中處理該程序以及該程序

較新版本的MS Office(2007)和Adobe Photoshop(CS4)分別使用多個窗口和選項卡。請注意,對於Windows 7,由於微軟的API提供了額外的標籤功能,MDI可能會失去更多人氣(儘管你不需要嚴格使用標籤 - MDI窗口可以工作,但對於用戶比平常)。

1

看來,多個頂級窗口是要走的路。至於是否應該有一個全球應用程序實例或每個文檔是由你決定的,我想。它對用戶不可見。

1

只有一個好處對於MDI:使用大量的資源,如Adobe Photoshop的

程序,往往有一個MDI由於同時運行多個實例的成本過高。

但是,您不應該開發耗費大量資源開始的程序。

5

舊式的MDI(在文檔之間切換,你必須通過Windows菜單)很煩人。較新的MDI(如Opera和Mozilla中的選項卡)使文檔之間的切換變得非常簡單,似乎已被接受。它們也不會像任何沒有MDI的東西打開多個文檔那樣混亂任務欄。

2

我同意slavy13(舊的MDI =壞,新的MDI =好多了)。但不要使用像Microsoft Excel這樣的程序作爲你的模型。伊克!無論您打開了多少張電子表格(您可能會或可能不會選擇這些電子表格),您的桌面上都會顯示一個窗口。但是,您打開的每個文檔都會有一個任務欄圖標。並且您的Alt + Tab窗口對於每個打開的文檔都有一個圖標。此外,還有一個額外的圖標,僅用於「Excel」,它會將您帶到哪個文檔恰好是「當前」。所以是的,做你的MDI像Mozilla。或者至少讓你的用戶可以選擇更換清潔風格。

爲了更簡潔地回答你的問題,我覺得答案是肯定的,在某些情況下,MDI仍然合適。但是,在所有的事情上,適度是關鍵。

15

MDI的缺點如下:

  • 它通常需要用戶學習和了解一個更復雜的一組窗口的關係。

  • 許多簡單的操作可能需要兩個步驟的過程。例如,將所需的窗口置於前臺可能需要用戶首先將容器窗口向前移動,然後將容器窗口中正確的主窗口向前移動。調整窗口大小或最大化可能意味着首先調整容器窗口,然後調整其中的主窗口。

  • 如果打開了多個容器窗口,用戶可以忘記哪個窗口具有所需的主窗口,需要進行繁瑣的搜索。

  • 用戶很容易被最大化,圖標化,圖層和關閉窗口的雙重方式所迷惑。例如,他們可能會關閉整個應用程序,而不是關閉容器窗口中的窗口。或者他們可能會「失去」一個窗口,因爲他們在容器窗口內將其圖標化而沒有意識到它。

  • 用戶在他或她的窗戶可以承擔的大小和位置上受到限制。假設我想同時查看一個應用的3個窗口和另一個應用的1個窗口。使用SDI,我可以讓每個窗口占據屏幕的一個象限,但是我不能用MDI來做到這一點。如果我想讓MDI中的一個窗口變大而另一個窗口變小,該怎麼辦?我必須將容器窗口放大以容納大窗口(它遮擋了其他應用程序的窗口),但是在看着孩子時會浪費空間。

注意,所有這些缺點適用於選項卡式文檔界面(TDI)也與具有另外的缺點是,用戶無法通過側看兩個文件在同一容器中的窗口一側的標籤式界面。選項卡還會增加混亂並在您的窗口中佔用不動產。然而,整體TDI往往不如MDI更成問題,所以它們可能是特殊情況下的首選(繼續閱讀)

總之,很難想象使用MDI的情況。它不如SDI好,但增加了更多的複雜性和導航開銷,並且與其他應用程序的窗口效果不佳。

沒有理由一個應用程序不能有多個頂級SDI窗口。即使有像Origin這樣的應用程序,只要在每個窗口中都能很好地識別項目,我就不會發現跨多個SDI窗口傳播項目的問題。 SDI還允許不同類型的窗口(例如圖形vs工作表)具有不同的菜單和工具欄,而不是根據活動窗口隱藏或禁用項目(前者令人困惑,後者浪費空間)。

SDI爲您的用戶提供了MDI或TDI更多的靈活性。用戶可以重疊或最大化窗口,並將任務欄/擴展塢用作事實上的選項卡界面。用戶也可以調整窗口大小並重新定位,以便他們可以一次查看多個窗口。每個窗口可以獨立調整大小以優化屏幕空間。無論MDI或TDI可能具有哪些優點,您可能可以擴充SDI以獲得這些優勢(例如,提供縮略圖菜單,可以在窗口之間切換,比使用任務欄更快,並且與選擇選項卡相媲美,或者提供一個可以圖標化所有控件的控件點擊一個應用程序的窗口)。

除非您有令人信服的理由使用TDI,否則請轉到SDI以實現這種靈活性。令人信服的理由包括以下的某個子集:

  • 每個標籤被用於不相關的高階任務,用戶將不能在標籤間的切換或頻繁的標籤之間進行比較的信息。

  • 您正在與非常低端的用戶混淆,這些用戶對任務欄/停靠欄和多個窗口無知或困惑,並且不知道如何調整窗口大小(看起來引人注目的標籤圖像比任務欄更好地工作對於這樣的用戶)。

  • 您預計通常會有大量的選項卡(例如,4個或更多),並且您可以以比操作系統可以更有效地控制其顯示的方式,如果它們是任務欄上的SDI窗口/碼頭(例如,關於訂單和標籤)。

  • 使用SDI時,用戶遇到問題時,用戶將活動窗口的工具欄或不活動窗口的調色板混淆。

  • 選項卡的數量是固定的並且永久打開(例如,每個選項卡是同一數據對象的不同組件時)。用戶不會試圖區分關閉標籤和關閉整個窗口;找出導航窗口並不是問題,因爲所有的窗口都有相同的標籤。

  • 確實只有一種方法來正確安排任務的數據,用戶之間沒有任何變化或者他們實際使用應用程序的方式。您還可以通過組合標籤和主細節窗格爲用戶進行設置,而不是依賴用戶來安排和調整SDI窗口的大小。

綜上所述,考慮到用戶的能力,應用程序的複雜性和任務結構,如果您的應用程序可以管理的內容顯示比用戶/ OS,使用TDI更好,否則使用SDI。

1

我可以看到的MDI的一個優點是,如果很多屏幕房地產將用於許多窗口之間共享的東西。在封閉窗口的頂部或側面放置這種材料比在每個SDI窗口中重複這些材料或使其出現在完全獨立於SDI窗口的窗口中更合理。例如,聊天程序可能有一個狀態窗格和一個控制窗格。將這些與聊天窗口在視覺上相關聯可能會比將它們作爲獨立窗口更好。

2

MDI的主要優點是當您想要同時跟蹤兩個或多個窗口,並且這些窗口需要組合在一起。例如,在一個窗口中有一個正在運行的進程,但您需要在另一個窗口上工作,MDI將是最理想的。