Seite 1 von 1

QT 4.1.1 Hintergrundfarbe eines Widgets setzen...

Verfasst: 23. März 2006 11:53
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

Verfasst: 23. März 2006 13:20
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);

Gute Idee

Verfasst: 4. April 2006 08:24
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...

Verfasst: 5. April 2006 00:01
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();
    }
  }