QT 4.1.1 Hintergrundfarbe eines Widgets setzen...

Alles rund um die Programmierung mit Qt
Antworten
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

QT 4.1.1 Hintergrundfarbe eines Widgets setzen...

Beitrag von nando »

hi,
kann mir einer sagen, wie ich die hintergrundfargbe eines beliebigen QWidgets setze?


habe folgendes probiert...

A::func()
{
QPalette P;
P.setColor(QPalette::Window, Qt::darkYellow);
m_pMyWidget->setPalette(P);
}

funzt leider nicht...


gruss,
nando
autip
Beiträge: 14
Registriert: 24. Januar 2006 18:05

Beitrag von autip »

Versuchs mal damit:

void QWidget::setBackgroundColor ( const QColor & color )
Use the palette instead.
For example, if you have code like
widget->setBackgroundColor(color);
you can rewrite it as
QPalette palette;
palette.setColor(widget->backgroundRole(), color);
widget->setPalette(palette);


Oder:
void QWidget::setPaletteBackgroundColor ( const QColor & color )


Dann Sicherheitshalber vielleicht noch das:
setAutoFillBackground(true);
stimpy
Beiträge: 64
Registriert: 7. März 2006 17:05

Gute Idee

Beitrag von stimpy »

Hi!

Ich habe ein selbstgeköppeltes Widget in ein Layout gepackt, da war die Hintrgrundfarbe futsch.
Der Aufruf von "setAutoFillBackground(true);" hat in dem Fall geholfen...
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Code: Alles auswählen

  void setWidgetBackgroundColor( QWidget *widget, const QColor &color ) {

    if ( color.isValid() ) {

      QPalette palette( widget -> palette() );
      palette.setColor( QPalette::Background, color );

      widget -> setAutoFillBackground( true );
      widget -> setPalette( palette );
      widget -> setBackgroundRole( QPalette::Background );
      widget -> repaint();
    }
  }
Antworten