QTreeView + Stylesheet = kann Zellhintergrund nicht färben
Verfasst: 2. November 2010 14:56
Hallo allerseits,
hab schon wieder ein ziemlich bescheidenes Problem. Auch wenn manche evtl. müde lächeln mögen... aber auf Basis der Qt-Doku und auch per Suche mit Google und so komme ich net weiter...
Ich stelle ein von QAbstractItemModel abgeleitetes Model in einem QTreeView dar.
Nun möchte ich in Spalte 3 den Wert der Zelle auswerten - und entsprechend die Hintergrundfarbe ändern...
1. Versuch:
In der data() Methode des Models auf Qt::BackgroundRole entsprechend reagiert. Und dann entsprechend QColor(farbwert) zurückgeben...
2. Versuch:
Eigenes Delegate erstellt und entsprechend painter->fillRect(option.rect,QColor(farbwert)) gesetzt und alles wie in der Doku beschrieben zurückgegeben...
Nichts davon funktioniert... nach frustierendem Suchen habe ich nun herausgefunden, dass mein Stylesheet die Farben einfach überschreibt...
Problem ist bloss dass ich einen Stylesheet für meine Applikation benötige - und dort werden halt auch die Items des QTreeView mit einer Hintergrundfarbe belegt... Schalte ich diesen aus - geht alles.
Nun hätte ich jedoch zumindest vom Delegate erwartet, dass dieser den Stylesheet für die jeweilige Darstellung überschreibt...
Wie kann ich mein Problem trotzdem lösen?
danke für die Hilfe im Voraus
mfg
Tribari
hab schon wieder ein ziemlich bescheidenes Problem. Auch wenn manche evtl. müde lächeln mögen... aber auf Basis der Qt-Doku und auch per Suche mit Google und so komme ich net weiter...
Ich stelle ein von QAbstractItemModel abgeleitetes Model in einem QTreeView dar.
Nun möchte ich in Spalte 3 den Wert der Zelle auswerten - und entsprechend die Hintergrundfarbe ändern...
1. Versuch:
In der data() Methode des Models auf Qt::BackgroundRole entsprechend reagiert. Und dann entsprechend QColor(farbwert) zurückgeben...
2. Versuch:
Eigenes Delegate erstellt und entsprechend painter->fillRect(option.rect,QColor(farbwert)) gesetzt und alles wie in der Doku beschrieben zurückgegeben...
Nichts davon funktioniert... nach frustierendem Suchen habe ich nun herausgefunden, dass mein Stylesheet die Farben einfach überschreibt...
Problem ist bloss dass ich einen Stylesheet für meine Applikation benötige - und dort werden halt auch die Items des QTreeView mit einer Hintergrundfarbe belegt... Schalte ich diesen aus - geht alles.
Nun hätte ich jedoch zumindest vom Delegate erwartet, dass dieser den Stylesheet für die jeweilige Darstellung überschreibt...
Wie kann ich mein Problem trotzdem lösen?
danke für die Hilfe im Voraus
mfg
Tribari