Alle drei Einträge sind auf der gleichen Ebene es gibt aber zwei Typen a und b. Der User wählt nun einen Eintrag aus und je nachdem ob es sich um Typ a oder b handelt soll was bestimmtes passieren. Im QTreeWidget habe ich den Typen aber nicht mehr. Das einzige was mir einfällt wäre eine unsichtbare Spalte im QTreeWidget einführen in dem der Typ steht. Wäre das der richtige Weg?
Wie gesagt oben das Beispiel ist der einfachste Fall. Eigentlich stehen im xml File nur technische Namen und im QTreeview ein Klartextname der per lookup in einem Parameterfile gefunden wird. Falls obiger Vorschlag der richtige wäre würde ich mit 10 unsichtbaren Spalten enden.
Setzt dich mal mehr mit den Widgets und den Models auseinander.
Alter weg:
WidgetItems haben immer so was wie eine data methode (unspezifizierter 32 bit wert), dort kann man z.b. nen zeiger auf das zugrundeliegende Object (z.b. auch nen QDomNode) hinterlegen.
Neuerer und flexibler weg:
Nutze die Model View Architektur
Baue benutzerdefinierte rollen. Brauchst du die benutzederfinierten Daten zu einem index, rufst einfach die data methode zum index auf, mit der entpsrechenden benutzerdefinierten rolle ....
Flexibler und eleganter geht es wirklich nicht mehr.