2015-01-08 24 views
7

Ich möchte in meinem Programm einen Baum mit verschachtelten Unterebenen implementieren, und ich bin auf der Suche nach welche dieser beiden Art (View/Widget) am besten für mein Ziel geeignet ist.QTreeView oder QTreeWidget

Ich habe eine Liste der Tage mit Aufgaben, die entweder erledigt/verpasst/fehlgeschlagen sind, jede Aufgabe hat eine Zählung wie oft es gemacht wurde/verpasst/fehlgeschlagen und zuletzt eine Punktzahl für diesen Tag.

Ich möchte ihnen zeigen, wie so:

tree display

ich dieses Beispiel in QtCreator ein QTreeWidget gemacht, aber ich mache mir Sorgen, dass es schwer sein würde, um die Elemente zu ändern, da sie irgendwo gespeichert werden sonst.

Sind meine Sorgen rational und sollte ich zur Modell-/Ansichtsstruktur gehen, oder kann ich einfach mit dem QTreeWidget beginnen? Der Baum protokolliert die Aufgabe und wird sich somit ständig ändern. Elemente werden nur hinzugefügt, nicht entfernt. Und die Tage werden von höchster-niedrigsten sortiert (Tag 2 ist zuerst, dann Tag 1)

Antwort

4

Wenn Ihre Daten in einem Datenbankmodell gespeichert sind oder wenn Sie ein einzelnes Datenmodell haben und in einigen Ansichten in anzeigen möchten verschiedene Möglichkeiten, dann sind Sie definitiv besser mit QTreeView gehen.

Aber QTreeWidget hat sein internes Modell in irgendeiner Weise zusammen mit den Methoden, um mit Modell im Kontext von Indizes umzugehen. Im Allgemeinen, wenn Sie einfach etwas wollen, das einfach zu arbeiten ist, können Sie den Widget-Weg verwenden.

Aber der Model/View-Ansatz ist allgemeiner und flexibler IMO. Sie können Ihre eigenen Unterklassen von Modell und Ansicht erstellen, mit denen Sie alles machen können, was Sie wollen.

Verwandte Themen