2

GUI をプログラミングするとき (通常は Python と PyQt4 を使用)、コードをきちんと整理しようとしますが、よく同じ質問に直面します。

コードの非表示オブジェクト (データ) は、対応する可視ウィジェット (グラフィック表現) とどのように関連付けるべきですか?

たとえば、言語辞書のエントリのリストがあるとします。各エントリは、さまざまな属性と機能を持つ抽象データ オブジェクトです。各エントリは、ユーザーが操作できるウィジェットとしてもグラフィカルに表示されます。

それらを整理するには、次の 4 つの方法が考えられます。

  1. ウィジェット オブジェクトはデータ オブジェクトの子です。
  2. データ オブジェクトはウィジェット オブジェクトの子です。
  3. ウィジェット オブジェクトとデータ項目が 1 つのオブジェクトにマージされます (データはウィジェットの属性です)。
  4. ウィジェット オブジェクトとデータ オブジェクトは別々に存在し、後者は前者に供給されます (例: *args として)

現在、これに関して従来の合意があるかどうかはわかりませんし、これらの可能な取り決めが本当に違いを生むかどうかもわかりません.

ベストプラクティスは何ですか?

4

1 に答える 1

2

Python や QT を使用したことはありませんが、次のような組織を探しているようです。

モデル ビュー コントローラー

アイデアは、データ オブジェクト (モデル) がウィジェット (ビュー) から離れて存在できるということです。それらはコントローラーによって調整されます。

これは、Objective-C / Cocoa で非常に一般的であり、Android ではそれほどではありません。

最近のほとんどの Web フレームワークも、この概念に基づいています。

編集:少なくともある程度、QTも同様です:

http://doc.qt.nokia.com/qq/qq10-mvc.html

于 2012-08-16T03:52:16.977 に答える