我下面有代码段。基本上,我的目标是创建一个具有不同UI的堆叠式布局。我目前正在从另一个班级创建我的主窗口。但是,我注意到,当我使用样式表放置背景图像时,我会覆盖按钮的背景颜色,并且它仅显示在边框上,从而导致:
在上图中:红色是我的背景颜色,蓝色是我的按钮的背景颜色。 我试图避免从文档中使用调色板,将其与样式表一起使用可能会导致某些错误行为
class Main(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Main Window")
main_window = MainWindow()
width, height = 480, 720
self.setFixedSize(width, height)
# Center to the screen
qr = self.frameGeometry()
cp = QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
self.move(qr.topLeft())
# Create a stack object
self.stacked_layout = QStackedLayout()
# Set central widget
self.central_widget = QWidget(self)
self.central_widget.setLayout(self.stacked_layout)
self.setCentralWidget(self.central_widget)
# Add the main window widget to the stack
self.stacked_layout.addWidget(main_window)
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setAttribute(Qt.WA_StyledBackground)
self.setStyleSheet("background-image: url(resources/images/red_bg.jpg)")
# Create start button
self.startbtn = QPushButton("START", self)
self.startbtn.setFont(font.set_font('Roboto', 15))
self.startbtn.clicked.connect(QApplication.instance().quit)
self.startbtn.setStyleSheet("color: white; background-color:blue")
self.startbtn.installEventFilter(self)
self.startbtn.move(210, 405)