设置背景颜色和背景图像

字节数

我想知道如何使用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")

但它不起作用。我收到“无法解析样式表”错误。显然,图像与代码方向相同。
另外,当我仅设置背景图像时,它显示“阴影”:

“阴影”

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

音乐家

有两个问题:

  1. 在第二行中有一个错字,因为您;}在背景的末尾添加了一个,这使样式表无效;
  2. 使用“ *”通用选择器(与使用几乎相同QWidget)意味着所有小部件都将使用为其声明的属性,并且由于您可能在QMainWindow(继承自QWidget)上设置了样式表,因此图像背景为示出了用于两个主窗口其中心插件; 通用选择应该小心使用,尤其是避免了顶层窗口小部件;

因此,除了修正拼写错误之外,您还应该仅对感兴趣的小部件应用背景。一个好的解决方案是设置中央窗口小部件对象名称(例如,如果尚未设置,例如在使用Designer文件时),然后在样式表中使用适当的选择器。我还建议您在样式表上使用更好的格式和缩进,因为这会使它们更具可读性,从而使您更容易发现语法错误。

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;
    }''')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章