Ich lese gerade über Modell/Ansichts-Programmierung Entwurfsmuster, aber ich verstehe nicht, wie man ein Modell definiert. Mein Modell sollte von QAbstractItemModel erben? Wenn ja, denke ich, es ist sehr begrenzt, weil meine Modelle Klasse könnte nicht von einem anderen Modell Klasse erben.
Antwort
Zu viele Anzeigen?C++ hat Mehrfachvererbung, so dass Ihre Modelle technisch gesehen könnte sowohl von den Qt-Modell-Basisklassen als auch von etwas anderem ableiten.
Davon abgesehen ist die Mehrfachvererbung ziemlich schwierig (für mich jedenfalls), die Zusammensetzung ist leichter zu bewerkstelligen.
Eine Möglichkeit, Ihre ORM-Modellklassen mit denen von Qt zu "verschmelzen", besteht darin, eine Qt-Modellklasse zu erstellen, die eines (oder mehrere) der Modelle Ihres ORMs als Mitglied hat. Das Qt-Modell würde im Wesentlichen alle Anfragen an Ihr ORM-Modell weiterleiten. Das Qt-Modell wäre nur ein "Adapter". Dadurch bleibt Ihr ORM-Code unabhängig vom GUI-Toolkit, was im Allgemeinen gut ist.
Sehen Sie sich unbedingt die Referenz zur Unterklassifizierung des Modells für die Qt-Seite der Dinge.