1. 使用QPalette
setAutoFillBackground(true);
QPalette palette = this->palette();
palette.setBrush(QPalette::Window,
QBrush(QPixmap(":/image/bkg.png").scaled(
Qt::SmoothTransformation)));
this->setPalette(palette);
2. 使用QPainter直接绘制背景图
void Widget::paintEvent(QPaintEvent *event)
painter.drawPixmap(0,0,width(),height(),QPixmap(":/image/bkg.png"));
3. 使用QSS设置
setStyleSheet("QWidget#Widget{border-image:url(:/image/bkg.png)}");
void Widget::paintEvent(QPaintEvent *event)
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
4. 在QWidget上直接叠加一层QFrame
QFrame *frame = new QFrame(this);
frame->setObjectName("myframe");
frame->setGeometry(this->geometry());
frame->resize(width(),height());
frame->setStyleSheet("QFrame#myframe{border-image:url(:/image/bkg.png)}" );