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) 重繪界面