Seite 1 von 1

Angepasste QTreeView

Verfasst: 6. Mai 2008 10:10
von bastl80
Hallo allerseits,

Ich habe ein kleines Entscheidungsproblem, bei dem ich nocht nicht genau weiß wie das am Besten zu realisieren ist.

Ich möchte Daten in aus einem TreeModel in einer anderen Art darstellen (siehe Attachment). Die Daten selbst liegen hierarchisch im Model, also

Code: Alles auswählen

A1
  B1
    C1
       D1
       D2
       D3
       D4
       D5
     C2
       D1
       D2
   B2
     C1
       ...
Die Schwierigkeit liegt wohl darin, die D-Elemente nicht wie in einer TreeView untereinander, sondern nebeneinander anzuorden - und das noch jeweils in einer ScrollView.

Lässt sich das alles in einer TreeView mit einem entsprechenden Delegate abbilden oder muss eine neue View implementiert werden.
Hat jemand Beispielcode, wie man eine ScrollView in einer eigenen View integieren kann?

Vielen Dank erstmal.

Verfasst: 6. Mai 2008 12:19
von upsala
So wie das aussieht, glaube ich nicht, daß es mit einem QTreeView funktioniert. Die ScrollViews wären das kleiner Problem, aber du zeichnest schon 4 Ebenen in einem Element, da bin ich mir nicht einmal sicher, ob dies mit einem Delegate ohne weiteres erledigt werden kann..

Verfasst: 6. Mai 2008 13:35
von bastl80
Nun, ich denke die 3 ebenen in einem Element sollte nicht so schwierig sein, Zugriff auf den Child und dessen Child usw. und dann die DisplayRole konkatinieren und anzeigen. Die Untergeordneten Elemente dann einfach nicht zeichnen.

Hast du eine Idee wie das mit den ScrollViews zu realisieren wäre? Da liegt wohl im Moment mein Hauptproblem wie ich das realisieren kann.

Danke

Verfasst: 6. Mai 2008 18:41
von ObeliX
wau ... konkatenieren bedeutet 'verketten, zusammenführen, verknüpfen von mengen'. das mußt ich jetzt erstmal nachschlagen :oops:

Obel

Verfasst: 6. Mai 2008 21:11
von upsala
Also, wie gesagt scheint ein Delegate dafür nicht geeignet zu sein.

Eine ScrollView kannst du nicht verwenden, (gibts ja auch nicht mehr), aber eine QScrollBar. Die kannst du mit QStyle zeichnen und dann wenn die Maus darüberfährt eine richtige QScollBar darüberlegen um die Funktionalität einfach zur Verfügung zu stellen.