我的 qss 选择器在选择了正确的 ID 时不起作用
My qss selector doesn't work with a correct ID selected
最近在学习QSS。有一种情况,我想使用选择器来更改 QPushButton 小部件而不是其他小部件。所以我把qss文件写成blow
QPushButton#button_3 {
background: yellow;
min-width: 3em;
min-height: 2em;
}
QPushButton {
background-color: red;
min-width: 30em;
border-style: outset;
border-width: 2px;
}
而我的py文件是一样的
import sys
from PySide6.QtWidgets import (QApplication, QVBoxLayout, QWidget, QPushButton, QGridLayout, QLabel)
from PySide6 import QtCore
class Form(QWidget):
def __init__(self):
super(Form,self).__init__()
self.layout = QVBoxLayout()
self.button_1 = QPushButton("button_1")
self.button_2 = QPushButton("button_2")
self.button_3 = QPushButton("button_3")
self.layout.addWidget(self.button_1)
self.layout.addWidget(self.button_2)
self.layout.addWidget(self.button_3)
self.setLayout(self.layout)
'''
with open("./style/button.qss", "r") as f:
_style = f.read()
self.setStyleSheet(_style)
'''
if __name__ == "__main__":
app = QApplication([])
myForm = Form()
myForm.show()
with open("./style/button.qss", "r") as f:
_style = f.read()
myForm.setStyleSheet(_style)
sys.exit(app.exec())
但是选择器似乎不起作用。最后的window如吹:
好像全局配置已经生效了,但是选中的按钮button_3没有效果
为什么会这样?我认为问题可能出在 class 中的私有变量上,但我不确定。
HTMLid等同于Qt中的objectName
属性所以添加:
self.button_3.setObjectName("button_3")
最近在学习QSS。有一种情况,我想使用选择器来更改 QPushButton 小部件而不是其他小部件。所以我把qss文件写成blow
QPushButton#button_3 {
background: yellow;
min-width: 3em;
min-height: 2em;
}
QPushButton {
background-color: red;
min-width: 30em;
border-style: outset;
border-width: 2px;
}
而我的py文件是一样的
import sys
from PySide6.QtWidgets import (QApplication, QVBoxLayout, QWidget, QPushButton, QGridLayout, QLabel)
from PySide6 import QtCore
class Form(QWidget):
def __init__(self):
super(Form,self).__init__()
self.layout = QVBoxLayout()
self.button_1 = QPushButton("button_1")
self.button_2 = QPushButton("button_2")
self.button_3 = QPushButton("button_3")
self.layout.addWidget(self.button_1)
self.layout.addWidget(self.button_2)
self.layout.addWidget(self.button_3)
self.setLayout(self.layout)
'''
with open("./style/button.qss", "r") as f:
_style = f.read()
self.setStyleSheet(_style)
'''
if __name__ == "__main__":
app = QApplication([])
myForm = Form()
myForm.show()
with open("./style/button.qss", "r") as f:
_style = f.read()
myForm.setStyleSheet(_style)
sys.exit(app.exec())
但是选择器似乎不起作用。最后的window如吹:
好像全局配置已经生效了,但是选中的按钮button_3没有效果
为什么会这样?我认为问题可能出在 class 中的私有变量上,但我不确定。
HTMLid等同于Qt中的objectName
属性所以添加:
self.button_3.setObjectName("button_3")