TreeView mit DirModel und weitere Elemente

Alles rund um die Programmierung mit Qt
Antworten
qt2007
Beiträge: 14
Registriert: 3. November 2007 01:25

TreeView mit DirModel und weitere Elemente

Beitrag von qt2007 »

Hallo zusammen!
Ich würde gern folgende Struktur in einem TreeView oder TreeWidget erzeugen:

Code: Alles auswählen

-Datenbank
     ...
-Explorer
     |
     C:\
       |
       Ordner1
     D:\
     usw.
+Element3
+Element4
Also praktisch zu dem was QDirModel macht noch ein paar andere Elemente. Kann man sich das irgendwie einfach zusammenbauen ohne ein eigenes Model erstellen zu müssen?
marco
Beiträge: 41
Registriert: 6. Dezember 2006 23:46
Wohnort: Niederrhein

Beitrag von marco »

> ohne ein eigenes Model erstellen zu müssen?

nein, ich denke nicht.
Gruß, Marco
qt2007
Beiträge: 14
Registriert: 3. November 2007 01:25

Beitrag von qt2007 »

Könnte mir evtl jemand einen Tip geben wie man sowas am einfachsten macht damit ich nicht in einer Sackgasse lande? Die ganze Struktur soll auch gespeichert werden, in einer xml Datei zum Beispiel, und zur Laufzeit soll man neue Items einfügen können. Habe mir folgendes überlegt:

Version 1:
Model abgeleitet von QStandardItemModel, beim erzeugen wird der Baum aufgebaut
Items abgeleitet von QStandardItem:
FolderItem (Unterordner zur Gliederung)
DirItem
DatabaseItem
weitere Items...
Problem ist hierbei das DirItem, da müsste man größere Eingriffe machen, so wie ich das sehe eigentlich vieles von QStandardItem neu schreiben? Zur Speicherung des Baumes auf das Signal onItemChanged() reagieren?

Version 2:
Model: QAbstractItemModel
Items: abgeleitet von eigener Klasse TreeItem, Rest wie oben
Problem: sehr viel Arbeit, aber flexibler?

Wäre nett wenn mich jemand in einem Vorhaben bestätigen könnte oder vielleich noch einen anderen Tip hätte.

Gruß
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich habe vor kurzem versucht ein Model zu erstellen, bei dem man mehrere Modelle zusammenfassen kann. Bei ListModels ist mir dies gelungen, bei TreeModels nicht. Deswegen würde ich von QAbstractItemModel ableiten und das Verhalten von QDirModel nachbauen und der Rest ist dann eh deine Sache...
Antworten