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 ^^
QTree* mit eigenen QWidgets
-
- Beiträge: 15
- Registriert: 3. Februar 2008 15:40
QTree* mit eigenen QWidgets
- 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