问题描述
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); 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,1,1)
lay2 = QVBoxLayout()
label1 = QLabel('label')
lay2.addWidget(label1)
layout.addLayout(lay2,1)
lay3 = QVBoxLayout()
edit = QLineEdit('edit')
lay3.addWidget(edit)
layout.addLayout(lay3,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);}
有效。我想让QPushButton
的背景色通过'QPushButton{background-color: rgb(255,0); font-size: 100px;};'
变红,而QPushButton
的背景色实际上不是红色。
然后,如果我注释 'QWidget{background: rgb(150,150);};'
,并且新代码是:
...
self.setStyleSheet(
# 'QWidget{background: rgb(150,0); font-size: 100px;};'
'QLineEdit{background-color: yellow; font-size:5px;};'
)
...
现在,结果是:
我们可以发现 'QPushButton{background-color: rgb(255,0); font-size: 100px;};'
有效,但 'QLineEdit{background-color: yellow; font-size:5px;};'
仍然无效。
我怎样才能让这三种风格起作用?
'QWidget{background: rgb(150,150);};'
'QPushButton{background-color: rgb(255,0); font-size: 100px;};'
'QLineEdit{background-color: yellow; font-size:5px;};'