GUIには、通常1つのメインパーツと他のセカンダリパーツを使用して、さまざまなアクションを実行するためのいくつかの個別のパーツ(すべて同時に表示)が含まれている多くのプログラムがあります。
1つのウィンドウを分割してこれらのパーツを配置することのメリットとデメリットは何ですか(例:Visual Studio):
...メニューバーを含むメインウィンドウが1つあるのに対して、セカンダリパーツを別のウィンドウに移動する(例:GIMP)?:
これら2つ以外に、これを行う良い方法はありますか?
私の状況にいくつかのコンテキストを提供するために、GUIの主要部分がボードであるチェスプログラムに取り組んでいますが、いくつかの副次的な部分(移動リスト、ゲームメタデータ、エンジン分析など)があります。
実際には、Visual Studioのパネルも個別のウィンドウとして使用できます。メインウィンドウから何かをドラッグするだけで、動作を確認できます。
VSには、メインウィンドウ内で表示および配置するために利用できるドッキングオプションがさらにあります。ドキュメントやツールバーをドラッグして他の「メイン」ウィンドウを作成することもできます。
ただし、この複雑さがすべて必要なようには思えません。チェス盤をメインウィンドウにして、その他すべてのものを垂直タブ(一部は左側、一部は右側)にして、マウスオーバーするとスライドするようにするとよいでしょう。それらにピンボタンを配置して、ユーザーがそれらを表示する必要があるかどうかを選択できるようにすることができます。
複数のウィンドウを使用すると、単一のウィンドウ内にタイル張りされたパネルよりも柔軟性が高くなります。複数のウィンドウを使用すると、ユーザーはサイズを変更して配置することができます。タイル張りのパネルは、物事を整理し、一貫性を保ちます。
Photoshopは、複数ウィンドウアプローチの極端な例です。開くことができるウィンドウは20種類以上ありますが、ユーザーは一度にいくつかしか使用しません。これらのウィンドウのうち4つを維持したい人もいれば、そのうち6つのウィンドウを維持したい人もいるでしょう。人々は、さまざまな目的のために、さまざまな時間にさまざまなウィンドウのセットを維持しています。これらのウィンドウのさまざまな構成を単一のウィンドウ内のパネルとして維持することは、制限が多すぎます。
一方、一部のアプリケーションでは、単一のパネル化されたウィンドウのシンプルさと一貫性が優れていますが、必要なものを自由に配置することは役に立たないだけです。
これは、カスタマイズ可能性と一貫性の間の古くからのトレードオフです。どちらにも長所があり、両方に長所と短所があります。
一般的なルールとして、私は単純さと一貫性(単一ウィンドウ)を最初に試して、カスタマイズの必要性が現れるかどうかを確認します。
これは間違った選択です、これは私がこれを一般的にどのように置くかです
それ以上に、その使用方法と実装コストの関係についてです。パネルまたはウィンドウが最も簡単に実装できますが、パレットが最も柔軟です。
柔軟性は、製品の使用方法について高度な不確実性のシステムを使用している場合にのみ、設計に利益をもたらします。 Visual StudioとGIMPの両方がそのシナリオにあり、それらが提供する価値はその不確実性に対処しています。あなたがそのような状況にいるようには聞こえません。
複数のウィンドウが極端な場合です。ユーザーがパレットのあるシステムを使用しているときは、通常、パレットをウィンドウに「切り離す」必要があるまで、ドッキングしたままにしておきます。
高度な使用の不確実性はないため、より哲学的な道を進む代わりに、特定のユーザーワークフローについて計画することができます。
これはユーザーの好み、または状況に依存すると思います。表示する例では、1つの複雑なプログラムが実行されていることを前提としていますが、通常はさらにいくつかあります。 1つの大きなウィンドウではなく、多数の小さなウィンドウを配置するのは面倒になる場合があります。
そして、これは「X対Y」の場合ではないと思います。適切な実装では、パネルをメインウィンドウのどこかに配置するか、それらを別々のウィンドウに切り離すことができます。私はあなたの最初の例のピンアイコンがまさにそれをしていると思います。