Seite 1 von 1

[gelöst] Hintergrundfarbe QTreeWidget

Verfasst: 19. März 2007 15:17
von @udisello
Hallo,

weiß jemand, wie ich die Hintergrundfarbe eines QTreeWidgets ändern kann?
Kann mir vorstellen, dass ich die QTreeWidget Klasse überschreiben muss, die Frage ist nur welche Funktion (z.B. paint()???) und wie?

mit

Code: Alles auswählen

QTreeWidgetItem *pItem = new QTreeWidgetItem(  m_pParameterTW ); 
pItem->setBackground( 0, QBrush::QBrush( QColor( 200, 200, 200, 200 ) ) );

kann ich zwar den Hintergrund einer "Zelle" ändern, der Rest bleibt aber weiß. Danke für jede Hilfe
Qt Version 4.2.2, MS VS 2005

MfG @udisello

Verfasst: 19. März 2007 16:57
von Tarek
Kopier einfach die Standardpalette deiner Anwendung (QApplication::palette()) und verändere sie nach belieben.

Dann setzt du sie als Palette für dein TreeWidget:

Code: Alles auswählen

m_pParameterTW->setPallete(MyCustomPalette);

Verfasst: 19. März 2007 23:16
von @udisello
Hallo Tarek,

habe folgendes probiert:

Code: Alles auswählen

m_pParameterTW->setAutoFillBackground( true );
  QPalette pal( QApplication::palette() );
  pal.setColor( QPalette::Window, QColor( 200, 200, 200, 200 ) );
  m_pParameterTW->setPalette( pal );
das TreeWidget bleibt jedoch weiß.

Code: Alles auswählen

m_pParameterTW->repaint();
-> ändert auch nichts

Any other idea?

Verfasst: 20. März 2007 09:09
von upsala
Das QTreeWidget müßte einen viewport() haben und von diesem muß die Palette geändert werden. (ungetestet)

Verfasst: 20. März 2007 09:59
von @udisello
Ok, habs hinbekommen. Habe einfach den falschen Wert bei .setColor angegeben. Wen es interessiert, hier der richtige Code:

Code: Alles auswählen

QPalette Pal( m_pTreeWidget->palette() );
Pal.setColor( QPalette::Base, Qt::red );
m_pTreeWidget->setPalette( Pal );
und schon ist der Hintergrund rot. Habe in der Hilfe beim ersten Background aufgehört zu lesen. Das passiert mir nicht gleich wieder.
Danke für eure Hilfe