[gelöst] Hintergrundfarbe QTreeWidget

Alles rund um die Programmierung mit Qt
Antworten
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

[gelöst] Hintergrundfarbe QTreeWidget

Beitrag 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
Zuletzt geändert von @udisello am 20. März 2007 10:01, insgesamt 1-mal geändert.
Tarek
Beiträge: 46
Registriert: 3. Oktober 2005 14:29
Kontaktdaten:

Beitrag 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);
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag 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?
MfG @udisello

Qt Version 4.3.0, MS VS 2005
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Das QTreeWidget müßte einen viewport() haben und von diesem muß die Palette geändert werden. (ungetestet)
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag 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
MfG @udisello

Qt Version 4.3.0, MS VS 2005
Antworten