关于PyQt5 setPalette 设置背景不生效问题
PyQt5 版本5.15.4 使用 setPalette不生效,源码如下:
def set_background(self, image):
self.resize(self.desk_width, self.desk_height)
desktop_bg = QImage(image)
# desktop_bg = QImage(":images/bg.png")
scaled = desktop_bg.scaled(int(self.desk_width), int(self.desk_height),
Qt.IgnoreAspectRatio, Qt.FastTransformation)
palette = QPalette()
palette.setBrush(QPalette.Background, QBrush(QPixmap.fromImage(scaled)))
self.setPalette(palette)
解决思路:
1、将PyQt5降级,如5.14.1 (测试正常)
2、使用setStyleSheet 或qss 设置方法
3、使用QPainter + paintEvent(self, event) 重绘界面