私はListbox
の中にtkinterにListbox
を持っています。私たちはイメージを選択することができますが、すべてのイメージはモデル内の配列にありますが、Listbox
がMVC "View"または "Controller"に対応するかどうかわかりません。コントローラの場合は、 MVCに従ってそれにインポートしたばかりです。これらのGUI要素はMVC用語でどのように表現されますか?
0
A
答えて
1
Listbox
またはtkinter
の他のウィジェットは、ビュー(明らかに)であるという意味でビューの一部とコントローラの一部ですが、コードにコールバックを登録するときにコントローラとしても機能しますウィジェットは、関連するユーザーのやりとり(イベント)を捕捉し、登録されたコードに(tkinterイベントメインループの助けを借りて)それらを誘導します。
あなたが望むのであれば、あなたのビジネスコードを分離したモジュール(あなたのモデル)に入れて、tkinter
登録されたコールバックがモデル内の関数を呼び出すようにすることができます。オブザーバーパターン(Pythonの例を参照)を使用して、ウィジェット(ビュー)を通知します。基本的にモデルのオブザーバーのリストを保持し、モデルが変更されたらupdate()
またはnotify()
というメソッドを呼び出します。
多くの場合、欠点ですが、モデルの変更が一部のウィジェットに影響を与えるたびにUIを自動的に更新する機能が必要になります。
私は単純なケース(いくつかのコントロールを使用するなど)には、それが良い理由がない限り、すべての作業を推奨していないことに注意してください。 MVCを使用したいと思っているのは、懸念を実際に分離するという欲望のようですが、最初にその努力を評価してください...
関連する問題
- 1. bussinessesとGUIレイヤーで設計され、使用されるパラメータテーブルはどのように表示されますか?
- 2. jQuery:これらの要素をどのように表示/非表示にしますか?ここ
- 3. jQueryの - どのように要素は、これらのクラスのいずれか
- 4. コマンドラインGUIはどのように作られていますか?
- 5. MVCアプリケーションにエラーページが表示されるようにするにはどうすればよいですか?現在、私はこのようなエラーページを
- 6. jQueryでは、要素が「マウスオーバーされた」とその要素の子要素を検出するにはどうすればよいですか?ここ
- 7. 空のArrayList要素(Spring MVCコントローラ)が表現言語に正しく表示されない
- 8. 正規表現数量子はどのように適用されますか?
- 9. GUIは最初からどのように作成されていますか?
- 10. これはどのように再現できますか?
- 11. iCalはどのGUI要素をカレンダー表示に使用しますか?
- 12. jQueryを使用して要素がフェードアウトされてから遅延した要素を非表示にするにはどうすればよいですか?
- 13. CSS:ブロック要素の高さはどのように計算されますか?
- 14. これらの正規表現はどのようにしてより簡潔に記述できますか?
- 15. このJSON解析されたハッシュの要素にアクセスするにはどうすればよいですか?
- 16. 他の要素のように要素をスライドさせるにはどうすればいいですか?
- 17. どのように角度表現にhtml要素を追加しますか?
- 18. これはどのようにしてAndroid用の正規表現を書くことができますか?
- 19. 通常の言語です..これらの要素は何ですか?
- 20. これらの値はCSSでどのように優先されますか?
- 21. ドロップダウンリストの選択された要素をボタンに表示するにはどうすればよいですか?
- 22. これらの要素を中央に配置するにはどうすればよいですか?
- 23. これらのdiv要素を反応的にするにはどうすればよいですか?
- 24. 現在のXSLTコンテキストから要素名を継承するにはどうすればよいですか?
- 25. この要素をクリックすると他の要素と同じように表示されます
- 26. 要素で:: after擬似要素のみを表示するにはどうすればよいですか?
- 27. javascriptイベントをある要素から別の要素に渡すにはどうすればよいですか?
- 28. 次のphp正規表現はどのように評価されますか?
- 29. golangのbig intはどのように表現されていますか?
- 30. jquery-mobileの現在/ライブページはどのように表示されますか?
それはあなたとどのような違いがありますか? – martineau
@martineauビューの場合、コントロールの幅を更新するだけで、コントロールのように私はビューのように更新するはずはない、MVCを尊重したい –
'tkinter'は' MVC'を使うとは思わない - そこにすべてを行うウィジェットだけです。 – furas