背景图片会覆盖按钮的背景色

时间:2019-06-19 07:02:39

标签: python python-3.x pyqt pyqt5 python-3.6

我下面有代码段。基本上,我的目标是创建一个具有不同UI的堆叠式布局。我目前正在从另一个班级创建我的主窗口。但是,我注意到,当我使用样式表放置背景图像时,我会覆盖按钮的背景颜色,并且它仅显示在边框上,从而导致:

Resulting Image

在上图中:红色是我的背景颜色,蓝色是我的按钮的背景颜色。 我试图避免从文档中使用调色板,将其与样式表一起使用可能会导致某些错误行为

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)

0 个答案:

没有答案