过去两天我一直在努力解决这个问题...我想简单地将拉伸的背景图片添加到我的父QWidget中。在搜索到处之后,我确实尝试了几十次,但我仍然坚持这个问题。我没有使用资源(来自qt设计师)。 PSB:
from PyQt5 import QtCore, QtWidgets, QtGui
import sys
class Ui_Form(QtWidgets.QWidget):
def __init__(self):
QtWidgets.QWidget.__init__(self)
self.setupUi(self)
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(860, 619)
Form.setStyleSheet("QWidget#Form {border-image: url(space.png) 0 0 0 0 stretch stretch;}")
它不起作用(默认BG显示)。但是当我执行这个时:
Form.setStyleSheet("border-image: url(space.png) 0 0 0 0 stretch stretch;")
所有Qwidgets孩子都有背景,这显然不是我想要的。但它至少证明了资源本身没有问题。我无法相信PyQt5不支持设置背景图像等基本功能......而且我不是唯一的支持:
我已经尝试通过Qpalette()使其工作并且效果更好,但我不知道如何使背景图像拉伸= /:
image = QtGui.QImage("space.png")
palette = QtGui.QPalette()
palette.setBrush(10, QtGui.QBrush(image))
Form.setPalette(palette)
有什么想法吗?
答案 0 :(得分:1)
我找到了一个解决方案(在Qt论坛的帮助下)。我看了Qt Style Sheets Examples并找不到如何自定义QWidget,所以我只是将我的QWidget转换为QMainWindow。我摆脱了菜单栏和状态栏,因为我不需要它们......现在QMainWindow的一切正常:)
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")