Qt:为什么只有qss文件中的一种样式有效

Qiang Zhang

我在项目中使用qss文件。整个代码是:

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sys

class Win(QWidget):

    def __init__(self):
        super().__init__()

        self.setStyleSheet(
                           'QWidget{background: rgb(150, 150, 150);};'
                           'QPushButton{background-color: rgb(255, 0, 0); font-size: 100px;};'
                           'QLineEdit{background-color: yellow; font-size:5px;};'
                           )

        layout = QGridLayout()
        self.setLayout(layout)

        lay1 = QVBoxLayout()
        btn1 = QPushButton('btn')
        lay1.addWidget(btn1)
        layout.addLayout(lay1, 0, 0, 1, 1)

        lay2 = QVBoxLayout()
        label1 = QLabel('label')
        lay2.addWidget(label1)
        layout.addLayout(lay2, 0, 1, 1, 1)

        lay3 = QVBoxLayout()
        edit = QLineEdit('edit')
        lay3.addWidget(edit)
        layout.addLayout(lay3, 1, 0, 1, 1)

        layout.setRowStretch(0, 1)
        layout.setRowStretch(1, 1)
        layout.setColumnStretch(0, 1)
        layout.setColumnStretch(1, 1)


if __name__ == '__main__':

    app = QApplication(sys.argv)
    win = Win()
    win.show()
    sys.exit(app.exec_())

我正在使用```setStyleSheet`来控制我的窗口,结果是:

在此处输入图片说明

我们可以发现这是唯一QWidget{background: rgb(150, 150, 150);}可行的。我希望的背景颜色为QPushButton红色'QPushButton{background-color: rgb(255, 0, 0); font-size: 100px;};',而QPushButton实际上的背景颜色不是红色。

然后,如果我注释'QWidget{background: rgb(150, 150, 150);};',则新代码为:

        ...
        self.setStyleSheet(
                           # 'QWidget{background: rgb(150, 150, 150);};'
                           'QPushButton{background-color: rgb(255, 0, 0); font-size: 100px;};'
                           'QLineEdit{background-color: yellow; font-size:5px;};'
                           )
        ...

现在,结果是:

在此处输入图片说明

我们可以找到可行的方法'QPushButton{background-color: rgb(255, 0, 0); font-size: 100px;};',但'QLineEdit{background-color: yellow; font-size:5px;};'仍然无法正常工作。

如何使这三种样式起作用?

'QWidget{background: rgb(150, 150, 150);};'
'QPushButton{background-color: rgb(255, 0, 0); font-size: 100px;};'
'QLineEdit{background-color: yellow; font-size:5px;};'
永乐

您在QSS语法中}存在错误,因为之后不应出现;

self.setStyleSheet(
    "QWidget{background: rgb(150, 150, 150);}"
    "QPushButton{background-color: rgb(255, 0, 0); font-size: 100px;}"
    "QLineEdit{background-color: yellow; font-size:5px;}"
)

此外,许多样式在QSS上的表现方式也有所不同,例如,我通过融合样式获得了正确的结果:

app.setStyle("fusion")

在此处输入图片说明

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在.js.erb文件中,只有一种情况有效

创建Flask-SQLAlchemy BaseQuery对象的两种方法-只有一种有效,为什么?

在EaselJS中添加一个阶段。一种有效,一种无效。为什么?

为什么一种方法有效,而另一种无效?

代码混乱-为什么其中一种有效,而另一种无效?

为什么一种功能有效而另一种不起作用?(Javascript)

.asp和.aspx中的内容原子Feed格式完全相同:一种有效,一种无效。为什么?

根据python中的列表检查输入-为什么一种方法有效而另一种无效?

为什么从日期时间到varchar的CAST在一种环境中有效,而在另一种环境中无效?

为什么此代码仅在一种情况下有效?

为什么这种互换有效,而另一种无效

有没有一种方法可以检查Qt中的QObject指针是否仍然有效?

检查文件目录路径在Python 2.7中有效的一种优雅方法

我正在制作一个由内而外的东西。但只有最后一种颜色有效。有什么解决办法吗?

模板中的方法:一种有效,一种不实例化

有没有一种有效的方法来搜索非常大的文件中的字典?

有没有一种资源有效的方式将文件加载到数据库中?

Haskell - 计算 Int *100 :为什么一种方式有效,但是另一种方式会产生错误?

为什么此代码在一种情况下有效而在另一种情况下无效?

为什么类型断言在一种情况下有效,而在另一种情况下无效?

静态库通过CMake与其他静态库链接-一种有效,一种无效。为什么?

有没有一种有效的方法来用另一种有效的方法替换数据框中的值?

为什么在scala列表平面图参数签名中只有一种类型参数

为什么这些几乎相同的HTML表单中只有一种会对提交按钮单击做出反应?

以下版本几乎相同,那么为什么只有一个有效?

动态创建的范围表格,只有最后一个范围有效,为什么?

在Python中,什么是一种清晰有效的方法来计算区域中的事物?

什么是一种有效的方法来获取Django中按字段分组的对象的数量?

在docpad中,有没有一种有效的方法可以将静态文件和要渲染的文件保存在同一目录中?