Шаблон MVVM с PySide - программирование
Подтвердить что ты не робот

Шаблон MVVM с PySide

Я пытался найти способ реализовать MVVM с помощью PySide, но не смог. Я думаю, что должен быть способ создания представлений из ViewModels с QItemEditorFactory и для привязки данных, я думаю, что могу использовать QDataWidgetMapper.

Есть ли у вас какие-либо идеи о том, как MVVM может быть реализован с помощью Qt и PySide? Даже если в С++ есть некоторые ресурсы, я попытаюсь перевести их на python.

Спасибо.

4b9b3361

Ответ 1

MVVM была специализацией шаблона MVP (Model-View-Presenter) и не уникальна для WPF, но была частью его создания. Я думаю, что вы пытаетесь найти MVP, чтобы представить вашу модель домена как представление в этом домене.

Если вам нужны примеры в С++, вы можете увидеть этот PDF. Однако вы можете получить суть этого из краткого резюме в manged С# ниже:

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

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

Кроме того, мне интересно, что вы можете использовать абстрактную нотацию объектов, чтобы сделать пропущенные генерики (модели просмотра) от вашей модели к вашим представлениям. В принципе, вам понадобится промежуточная функция, чтобы помечать соответствующие части для сериализации.

Ответ 2

Я не знаю, как далеко вы хотите взять MVVM, но на базовом уровне он поставляется с Qt, и я использовал его в течение длительного времени. У вас есть бизнес-специфическая модель, привязанная к базе данных. Затем вы создаете viewmode view-view как прокси-модель. Вы можете складывать несколько слоев из них, в зависимости от того, что вам нужно. Затем вы показываете, что с помощью представления. Пока все настроено правильно, оно будет "просто работать". Теперь, если вы хотите использовать модель для настройки представления, Qt не предоставляет ничего для вас непосредственно. Вам нужно написать класс factory, который может использовать данные viewmodel для создания экземпляра и настройки представления для вас. Все зависит от того, насколько вы хотите принять его, и какие архитектурные преимущества он вам дает.

Ответ 3

Очевидным ответом для меня является то, что MVVM подходит для WPF и некоторых других техников, которые приветствуют этот шаблон, и поэтому вам нужно выяснить, можно ли применять этот шаблон для других технологий. Пожалуйста, прочитайте на MVVM в wiki.