16

PySide で MVVM を実装する方法を見つけようとしましたが、できませんでした。QItemEditorFactory を使用して ViewModel からビューを作成する方法が必要だと思います。データ バインディングを行うには、QDataWidgetMapper を使用できると思います。

Qt と PySide で MVVM を実装する方法について何かアイデアはありますか? C++ のリソースがいくつかある場合でも、それらを Python に変換しようとします。

ありがとう。

4

3 に答える 3

1

MVVM は MVP (Model-View-Presenter) パターンの特殊化であり、特に WPF に固有のものではありませんが、その発端の一部でした。あなたが取得しようとしているのは、ドメイン モデルをそのドメインへのビューとして公開する MVP だと思います。

C++ の例が必要な場合は、この PDF を参照してください。ただし、以下の管理された c# の簡潔な概要からその要点を得ることができます。

public class DomainView : IDomainView
{
    private IDomainPresenter domainPresenter = null;

    ///<summary>Constructor</summary>
    public DomainView()
    {
        domainPresenter = new ConcreteDomainPresenter(this);
    }
}

また、抽象オブジェクト表記 を使用して、モデルからビューへの通用可能なジェネリック (ビュー モデル) を作成できるのではないかと思います。基本的に、シリアル化する関連部分にフラグを立てるための仲介機能が必要です。

于 2013-09-04T23:53:43.857 に答える
0

MVVMをどこまで取り入れたいのかわかりませんが、基本的なレベルではQtに付属しており、私は長い間それを使用しています. たとえば、データベースに関連付けられたビジネス固有のモデルがあります。次に、ビュー固有のビューモデルをプロキシ モデルとして作成します。必要に応じて、それらのレイヤーをいくつか積み重ねることができます。次に、ビューを使用してそれを示します。すべてが正しく設定されている限り、それは「うまくいく」でしょう。モデルを使用してビューを構成する場合、Qt は直接何も提供しません。ビューモデル データを使用してビューをインスタンス化し、設定できるファクトリ クラスを作成する必要があります。すべては、それをどこまで取りたいか、およびどのようなアーキテクチャ上の利点が得られるかによって異なります。

于 2013-09-08T08:33:54.537 に答える
-2

私にとっての明白な答えは、MVVM は WPF やこのパターンを歓迎する他の技術に適しているということです。そのため、このパターンを他の技術に適用できるかどうかを調べる必要があります。ウィキでMVVMを読んでください。

于 2013-06-21T03:38:31.463 に答える