Frage

Ich verstehe mehr oder weniger wie funktioniert MPV arbeitet. Aber ich habe nicht, welche Klassen:

  • QAbstractItemModel
  • QAbstractItemView
  • QAbstractItemDelegate / QItemDelegate

Kann für mich tun?

Wenn das relevant ist, ich bin mit QGraphicsScene / QGraphicsView mit einigen Elementen (visuelle Darstellung des Spielbrettes), dass Benutzer kann mit interagieren, während die Interaktionslogik (Spielregeln) ist in anderer Klasse gekapselt.

War es hilfreich?

Lösung

AbstractItemModel QAbstractItemView QAbstractItemDelegate

Sind von der "Mode / Blick Rahmen"
Dies ist ein sehr mächtiges Framework für die Daten Teil Ihrer Anwendung, hier ist eine Präsentation von der Rahmen.

QAbstractItemModel

ist die Basisklasse für das Modell des MVC . Hat eine globale Schnittstelle für den Zugriff auf und das Ändern der Daten und kümmert sich um den beobachtbaren Teil.

QAbstractItemView

ist die Basisklasse für die Ansicht des MVC . Hat aglobal Schnittstelle für die Ansicht / Auswahlen Teil und es kümmert sich um den Beobachter teil. Sie müssen nicht über das Beobachter-Muster Sorge, der Rahmen macht es für Sie.

QAbstractItemDelegate

ist die Basisklasse für die Controller des MVC .
Ist das Strategie-Muster für die Malerei, die Bearbeitung der Elemente, ...


QGraphicsScene / QGraphicsView

Sind von der "Die Grafik-Ansicht Framework" und ist unabhängig von dem Model / View-Framework.
Dies ist auch ein sehr mächtiges Framework für den Grafikteil.

  

Die Szene

     

QGraphicsScene stellt die Grafik   Ansicht Szene. Die Szene hat die   folgende Aufgaben:

     

Die Bereitstellung einer schnellen Schnittstelle für   eine große Anzahl von Elementen verwalten   Propagierung von Veranstaltungen zu jedem Artikel   Verwalten von Artikel Zustand, wie Auswahl   und konzentrieren Umgang Providing   untransformierten Rendering-Funktionalität;   vor allem für den Druck

     

Die Ansicht

     

QGraphicsView bietet die Aussicht   Widget, das die Inhalte visualisiert   eine Szene. Sie können mehrere anhängen   Ansichten der gleichen Szene, zur Verfügung zu stellen   mehrere Ansichtsfenster in die gleichen Daten   set


Wenn Sie ein Modell in einem QGraphicsView sichtbar zu sein, als Sie Ihre eigene Meinung schreiben basieren muss auf dem QAbstractItemView.
Nehmen Sie einen QGraphicsView als Viewport-Widget QAbstractScrollArea::setViewport(QWidget * widget)) und dann können Sie

  • hinzufügen QAbstractItemView::rowsInserted,
  • Entfernen QAbstractItemView::rowsAboutToBeRemoved
  • und ändern QAbstractItemView::dataChanged

die Elemente in der Szene. Vergessen Sie nicht, Pflege des Reset ein Layout-Änderungsereignisse zu nehmen.

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