关于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) 重绘界面

posted @ 2021-05-08 11:01  海里木有鱼  阅读(777)  评论(0编辑  收藏  举报