我试图在我的 svg 小部件下添加背景图像,但是在将一个小部件放入另一个小部件后,它被挤压到其最小宽度。为了调整大小,我正在使用更新小部件后不再起作用的调整大小事件。
class GoodSize(QWidget):
def __init__(self):
super().__init__(parent=None)
self.gridLayout_main = QGridLayout(self)
self.widgetSvg = QSvgWidget()
self.widgetSvg.setStyleSheet("background-color:white;")
self.gridLayout_main.setContentsMargins(0,0,0,0)
self.gridLayout_main.addWidget(self.widgetSvg)
class Squeezed(QWidget):
def __init__(self):
super().__init__(parent=None)
self.gridLayout_main = QGridLayout(self)
self.widgetSvg = QSvgWidget()
self.widgetSvg.setStyleSheet("background-color:white;")
self.gridLayout_main.setContentsMargins(0,0,0,0)
self.wallpaper = QWidget()
self.wallpaper_grid = QGridLayout(self.wallpaper)
self.wallpaper_grid.setContentsMargins(0,0,0,0)
self.gridLayout_main.addWidget(self.wallpaper)
self.wallpaper_grid.addWidget(self.widgetSvg)
self.wallpaper.setStyleSheet(".QWidget{\n"
"border-image: url(:/Images/background.JPG) 0 0 0 0 stretch stretch;\n"
"background-position: center;\n"
"background-repeat: none;\n"
"}\n"
"}")
# Resize event slot
@pyqtSlot(QWidget)
def resizeEvent(self, event):
self.widgetSvg.setFixedWidth(self.widgetSvg.height())
答案 0 :(得分:0)
嗯,我找到了解决这个问题的方法。我不得不在那里使用 show 事件并调整 svg 小部件的大小
@pyqtSlot(QWidget)
def showEvent(self, event):
self.widgetSvg.setFixedWidth(self.widgetSvg.height())