QTree* mit eigenen QWidgets

Alles rund um die Programmierung mit Qt
Antworten
LordBernhard
Beiträge: 15
Registriert: 3. Februar 2008 15:40

QTree* mit eigenen QWidgets

Beitrag von LordBernhard »

Hey!

Ich versuche derzeit einen Tree mit eigens erstellten QWidgets zu füllen. Unterschiedliche Zeilen sollen verschiedene Widgets haben und nur die 1. Spalte soll diese anzeigen. (die 0te spalte soll den normalen text anzeigen)

Folgende Ansätze habe ich ausprobiert:

1.) QTreeView mit Delegates (QStyledItemDelegate)
1a.) paint methode -- setIndexWidget --> Endlosscheife
1b.) widget selbst zeichnen -- fand leider nicht heraus wie ich das am besten umsetzen können

2.) QTreeView mit setIndexWidget (außerhalb des delegates)
funktioniert ABER: resizen funktioniert nicht, sobald man neue widgets hinzufügt (wenn man den tree schließt und wieder aufmacht "repainted" er wieder was dazu führt, dass die größe wieder richtig ist) -- fand leider nicht heraus wie ich mit signals den tree händisch repainte

3.) QTreeWidget mit setItemWidget
funktioniert ABER: resizen funktioniert nicht, sobald man neue widgets hinzufügt (wenn man den tree schließt und wieder aufmacht "repainted" er wieder was dazu führt, dass die größe wieder richtig ist) -- fand leider nicht heraus wie ich mit signals den tree händisch repainte

4.) QTreeView mit QGraphicsView mit setIndexWidget
sobald man buttons innerhalb des QGraphicsView benutzt kann ich keine signals und slots benutzen

Im Anhang sind 2 Beispielprogramme, die ich versucht habe möglichst kurz zu fassen. Die Endlosschleife habe ich auskommentiert, sodass das Progamm nicht direkt beim Starten abschmiert :-)

Es würde mich sehr freuen wenn ihr mir bei dem Problem helfen könnt. Die Forensuche und Google habe ich bereits ziemlich exzessiv gequält aber es ist nichts brauchbares außer setIndexWidget rausgekommen, jedoch ist diese laut Qt doku und eigener erfahrung NICHT GEEIGNET fürs resizen von widgets.


Es ist für mich im wesentlichen irrelevant für mich ob ich ein QTreeWidget oder ein QTreeView verwende, da ich keine wirkliche Verwendung für das Model habe (eigene "nicht-model" datenklassen).

Ich hoffe ihr könnt mir ein bisschen aushelfen und Licht in die Dunkelheit bringen. Weiters würde es mich sehr freuen wenn jemand kurz zusammenfassen könnte, wie man mit Models und Delegates widgets anzeigen kann, bzw. wie man generell widgets in einem Tree anzeigen kann.

Bernhard

[Edit]: wups.. in der Eile hab ich ganz vergessen den Anhang mit hochzuladen.. sry ^^
Dateianhänge
tree_with_widgets.zip
QTreeView und QTreeWidget
(8.89 KiB) 85-mal heruntergeladen
Tree with graphicviews.zip
Tree mit GraphicsView
(7.02 KiB) 87-mal heruntergeladen
Antworten