一句话总结就是:使用QPalette来设置窗口的背景图片可以避免出现使用setStyleSheet设置背景后子窗口也是父窗口背景的情况。
使用QPalette绘制背景的代码如下:
setAutoFillBackground(true); //这句一定不能少,否则图片显示不出来。
QPalette palette;
palette.setBrush(QPalette::Background, QBrush(QPixmap(":/desktop/Qt-design-pic/user-passwd.jpg")));
setPalette(palette);
使用setStyleSheet可以在Qt的design页面,右键->Change styleSheet来add background-image。或者就是在代码里实现:
this->setStyleSheet("background-image:url(