1.重写paintEvent()事件
在该事件中用画笔QPainter重画整个背景。该方法比较复杂,不建议初学者采用。
例子:
QPixmap background = QPixmap(":/res/background.png");
void XXX::paintEvent( QPaintEvent* pEvent )
{
QPainter painter(this);
painter.drawPixmap(0, 0, background);
}
2.使用调色板类QPalette
//以下代码中pWidget为指向要设置的widget的指针。
QPalette palette = pWidget->palette();
palette->setBrush(QPalette::All,QPalette::Window,QBrush(Qt::red));
pWidget->setPalette(palette);
pWidget->setAutoBackground(true);
推荐使用这种方法!
3.使用样式表。
pWidget->setStyleSheet("background-color:blue;"); //设置背景颜色
pWidget->setStyleSheet("background-image:url(:/folder/show.bmp);");
此方法会将pWidget上的控件背景也改变了。