Python 设置背景颜色和背景图像

Python 设置背景颜色和背景图像,python,pyqt,pyqt5,qtstylesheets,Python,Pyqt,Pyqt5,Qtstylesheets,我想知道如何使用PyQt5在Python GUI应用程序中设置背景颜色和背景图像。我不知道如何同时设置它们。我试过了 self.window.setStyleSheet("* {color: qlineargradient(spread:pad, x1:0 y1:0, x2:1 y2:0, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));" "backgrou

我想知道如何使用PyQt5在Python GUI应用程序中设置背景颜色和背景图像。我不知道如何同时设置它们。我试过了

self.window.setStyleSheet("* {color: qlineargradient(spread:pad, x1:0 y1:0, x2:1 y2:0, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));"
                  "background: qlineargradient( x1:0 y1:0, x2:1 y2:0, stop:0 #ffc982, stop:1 #ff9982);}; background-image: url(image.png); background-repeat: no-repeat")
但它不起作用。我收到“无法解析样式表”错误。显然,图像和代码的方向是相同的
另外,当我只设置背景图像时,它会显示 “影子”:


您知道如何解决这些问题吗?

有两个问题:

  • 当您添加了一个
    ;}时,第二行有一个输入错误位于背景的末尾,这使得样式表无效
    
  • 使用“
    *
    ”通用选择器(这与使用
    QWidget
    几乎相同)意味着所有的小部件将使用为其声明的属性,并且由于您可能正在QMainWindow(从QWidget继承)上设置样式表,主窗口及其中心窗口小部件均显示图像背景;通用选择器应小心使用,尤其是顶级小部件应避免使用 因此,除了修复输入错误,您应该只为您感兴趣的小部件应用背景。一个好的解决方案是设置中心小部件的对象名(如果尚未设置,例如在使用设计器文件时),并在样式表中使用适当的选择器。 我还建议您在样式表上使用更好的格式和缩进,因为这将使它们更具可读性,使您更容易找到语法错误

    self.window.centralWidget().setObjectName('centralWidget')
    self.window.setStyleSheet('''
        QWidget#centralWidget {
            color: qlineargradient(spread:pad, x1:0 y1:0, x2:1 y2:0, 
                   stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));
            background: qlineargradient(x1:0 y1:0, x2:1 y2:0, 
                        stop:0 #ffc982, stop:1 #ff9982);
            background-image: url(image.png);
            background-repeat: no-repeat;
        }''')