Python Qt:为什么qss文件中只有一种样式有效
我正在我的项目中使用qss文件。整个守则是:Python Qt:为什么qss文件中只有一种样式有效,python,pyqt,qtstylesheets,Python,Pyqt,Qtstylesheets,我正在我的项目中使用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( 'QWi
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(150150150);}
起作用。我希望QPushButton
的背景色被'QPushButton{背景色:rgb(255,0,0);字体大小:100px;};'变成红色代码>,并且QPushButton
的背景色实际上不是红色
然后,如果我注释'QWidget{background:rgb(150150150);};'代码>,新代码为:
...
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{背景色:rgb(255,0,0);字体大小:100px;};'代码>可以工作,但是'QLineEdit{背景色:黄色;字体大小: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{背景:rgb(150,150,150);}
QPushButton{背景色:rgb(255,0,0);字体大小:100px;}
“QLineEdit{背景色:黄色;字体大小:5px;}”
)
此外,许多样式在QS中的表现不同,例如,我使用fusion样式获得了正确的结果:
app.setStyle(“fusion”)