关于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) 重绘界面
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步