Frage

Ich mache einige Refactoring. Ich bin ein Model-View-Controller-Muster zu implementieren. Die Ansicht ist ein Qt-Widget.

Ursprünglich schaffte der Qt-Widget eine neue Instanz einer QAbstractTableModel Unterklasse auf dem Heap. Nennen wir es FooTableModel.

z

Widget::Widget(QWidget* parent)
    : 
    QWidget(parent)
    m_model(new FooTableModel(this))
{

Soll ich die neue Instanz von FooTableModel im MVC-Modell statt?

Auf diese Weise konnte ich eine Abhängigkeit von der Ansicht erstellen (vorausgesetzt, ich immer noch die Widget-Zeiger auf den FooTableModel Konstruktor übergeben)

Alternativ, ich habe nichts an den FooTableModel Konstruktor übergeben könnte und manuell die FooTableModel in meinem MVC-Modell löschen. *

Die letzte Option wäre die Schaffung des FooTableModel im Widget zu verlassen. (Und lassen Sie das Widget die FooTableModel direkt behandeln?)

Irgendwelche Vorschläge oder Vorlieben?

Meine Vermutung ist mit * im Moment zu gehen.

War es hilfreich?

Lösung

Im Allgemeinen sollten Sie das Modell das Bestehen der Ansicht vermeiden.

Wenn Ihr MVC-Modell ein QObject und die FooTableModel Instanz ist ein Kind es dann brauchen Sie nicht über die Bereinigung becasue Qt zur Sorge wird es für Sie tun. Im Idealfall, wenn Sie Qt verwenden die FooTableModel würde das Modell sein, oder was auch immer die Instanz hatte es sein würde.

Qt folgt das Model / View-Muster, da die Steuerung der Arbeit von der Sicht behandelt wird. Check out: http://doc.trolltech.com/4.5/model-view -introduction.html für mehr.

Kurze Antwort:. Pass nichts zu FooTableModel, es löschen, wenn Sie fertig

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top