QtWidget: 给widget加上背景图

QtWidget: 给widget加上背景图
关键使用widget的palette的brush.

int main(int argc, char *argv[]) {

    QApplication a(argc, argv);


    QWidget *widget = new QWidget();

    widget->setAutoFillBackground(true); // 这句要加上, 否则可能显示不出背景图.

    QPalette palette = widget->palette();

    palette.setBrush(QPalette::Window,

                     QBrush(QPixmap("1.png").scaled( // 缩放背景图.

                             widget->size(),

                             Qt::IgnoreAspectRatio,

                             Qt::SmoothTransformation))); // 使用平滑的缩放方式

    widget->setPalette(palette); // 至此, 已给widget加上了背景图.


    QHBoxLayout *layout = new QHBoxLayout();

    layout->addWidget(widget);

    QWidget *mw = new QWidget();

    mw->setLayout(layout);

    mw->resize(500, 500);

    //mw->setWindowFlags(Qt::FramelessWindowHint);

    mw->show();


    return a.exec();

}

你可能感兴趣的:(QtWidget: 给widget加上背景图)