发现使用QPainter 无法重画子控件的背景,但使用QPalette可以。写了两个函数,方便以后修改。
void setWidgetBG(const QString & fileName, QWidget *widget)
{
QPixmap map(fileName);
QPalette p = widget->palette();
p.setBrush(QPalette::Active, QPalette::Window, QBrush(map.scaled(widget->size())));
widget->setPalette(p);
widget->setAutoFillBackground(true);
}
void setWidgetBGColor(const QColor & color, QWidget *widget)
{
QPalette p = widget->palette();
p.setBrush(QPalette::Active, QPalette::Window, QBrush(color));
widget->setPalette(p);
widget->setAutoFillBackground(true);
}