Python 无法使用PyQt5在父QWidget中添加背景图像?
在过去的两天里,我一直在努力解决这个问题。。。我想简单地添加一个拉伸的背景图像到我的父母QWidget。在到处搜索之后,我确实尝试了几十次,但我仍然被这个问题困扰着。我不使用资源(来自qt设计器)。公共广播局: 并且它不工作(显示默认背景)。但当我执行此命令时:Python 无法使用PyQt5在父QWidget中添加背景图像?,python,python-3.x,pyqt5,Python,Python 3.x,Pyqt5,在过去的两天里,我一直在努力解决这个问题。。。我想简单地添加一个拉伸的背景图像到我的父母QWidget。在到处搜索之后,我确实尝试了几十次,但我仍然被这个问题困扰着。我不使用资源(来自qt设计器)。公共广播局: 并且它不工作(显示默认背景)。但当我执行此命令时: Form.setStyleSheet("border-image: url(space.png) 0 0 0 0 stretch stretch;") 所有的Qwidgets孩子都有背景,这显然不是我想要的。但这至少证
Form.setStyleSheet("border-image: url(space.png) 0 0 0 0 stretch stretch;")
所有的Qwidgets孩子都有背景,这显然不是我想要的。但这至少证明了资源本身没有问题。我不敢相信PyQt5中不支持一些基本功能,如设置背景图像。。。显然,我不是唯一一个:
我尝试通过Qpalete()使其工作,效果更好,但我不知道如何使背景图像拉伸=/:
image = QtGui.QImage("space.png")
palette = QtGui.QPalette()
palette.setBrush(10, QtGui.QBrush(image))
Form.setPalette(palette)
有什么想法吗?我找到了一个解决方案(在Qt论坛的帮助下)。我查看了QWidget,但找不到如何自定义QWidget,所以我只是将QWidget转换为QMainWindow。我去掉了菜单栏和状态栏,因为我不需要它们。。。现在使用QMainWindow一切正常:)
尝试
Form.setStyleSheet(“border image:url(space.png);”)
…顺便说一句,希望您不要为您的回复@danidee执行setStyleSheet
两次(在init方法和其他地方)Thx。我尝试了您的命令,但不幸的是,该图像应用于所有父对象的子对象(1个hlayout和2个QGroupBox)。即使在对我的一些QpushButton或QGroupBox小部件应用程序的所有setStyleSheet
进行了注释之后,我也面临着同样的问题。。。
image = QtGui.QImage("space.png")
palette = QtGui.QPalette()
palette.setBrush(10, QtGui.QBrush(image))
Form.setPalette(palette)
class Ui_MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(856, 610)
MainWindow.setStyleSheet("#MainWindow { border-image: url(space.png) 0 0 0 0 stretch stretch; }")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")