我 的 个 人 主 页: 失心疯的个人主页
入 门 教 程 推 荐 : Python零基础入门教程合集
虚 拟 环 境 搭 建 : Python项目虚拟环境(超详细讲解)
PyQt5 系 列 教 程: Python GUI(PyQt5)文章合集
Oracle数据库教程: Oracle数据库文章合集
优 质 资 源 下 载 : 资源下载合集
QSS 语法
选择器[:为状态]{
声明
}
QLabel#l1:hover{
background-color: orange;
}
/*
QLabel:类选择器
#l1:ID选择器
hover:为状态
{}:中间部分为声明
*/
*
:匹配所有控件* {
background-color: gray;
}
控件类型
:通过控件类型来匹配控件,包含其子类QPushButton {
background-color: cyan;
}
.控件类型
:通过控件类型来匹配控件(不包含子类).QPushButton {
background-color: cyan;
}
#objectName
:通过objectName来匹配控件#hehe {
background-color: pink;
}
控件类型[属性名[="属性值"]]
:通过属性值来匹配控件setProperty(属性名,属性值)
设置属性/*.QLabel:仅仅是QLabel类,并不包含其子类*/
.QLabel[notice_level='wanrning'] {
/*设置边框:粗细 实线 黄色*/
border: 3px solid yellow;
}
/*.QLabel:仅仅是QLabel类,并不包含其子类*/
.QLabel[notice_level] {
/*设置边框:粗细 实线 黄色*/
border: 3px solid yellow;
}
父控件 子控件
:通过父控件(直接或间接)子控件来筛选控件/*直接或间接 子控件*/
QWidget#box1 QLabel {
background-color: pink;
}
父控件>子控件
:通过父控件的直接子控件来筛选控件/*直接子控件*/
QWidget#box1>QLabel {
background-color: pink;
}
复核控件::子控件
:用来筛选一个复核控件上的子控件QCheckBox, QRadioButton
::indicator # 勾选框
QComboBox
::drop-down # 右侧下拉箭头按钮
QSpinBox, QDateEdit, QTimeEdit, QDateTimeEdit
::up-button
::down-button
::up-arrow
::down-arrow
QSlider
::
QProgressBar
::
QScrollBar
::
...
/*匹配objectName为box1控件的QLabel类型直接子控件和配objectName为btn1和配objectName为btn2的控件*/
QWidget#box1>QLabel,#btn1,#btn2 {
background-color: pink;
}
from PyQt5.Qt import *
import sys
class MyWind(QWidget):
def __init__(self,parten=None, w_name=None):
super().__init__(parten)
self.n = w_name
lab1 = QLabel('窗口'+self.n+'_标签控件1', self)
lab2 = QLabel('窗口'+self.n+'_标签控件2', self)
btn1 = QPushButton('窗口'+self.n+'_按钮控件1', self)
btn2 = QPushButton('窗口'+self.n+'_按钮控件2', self)
lab3 = QLabel('按钮内的标签', btn1)
# ID选择器
btn1.setObjectName('btn1')
btn2.setObjectName('btn2')
# 属性选择器
lab1.setProperty('level','wanrning_'+w_name)
w = 200
h = 50
x = 20
y = 20
lab1.resize(w, h)
lab2.resize(w, h)
btn1.resize(w, h)
btn2.resize(w, h)
lab1.move(x, y)
lab2.move(lab1.x(), lab1.y()+lab1.height()+20)
btn1.move(lab1.x()+lab1.width()+20, lab1.y())
btn2.move(btn1.x(), lab2.y())
class Windows(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('QSS-初体验')
self.resize(500, 500)
self.widget_list()
def widget_list(self):
self.add_widget()
def add_widget(self):
w1 = MyWind(w_name='w1')
w2 = MyWind(w_name='w2')
w3 = MyWind(w_name='w3')
w1.setObjectName('w1')
cb = QComboBox()
cb.addItem('中国')
v_layout = QVBoxLayout()
self.setLayout(v_layout)
v_layout.addWidget(w1)
v_layout.addWidget(w2)
v_layout.addWidget(w3)
v_layout.addWidget(cb)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Windows()
with open('style.qss', 'r',encoding='utf-8') as f:
result = f.read()
app.setStyleSheet(result)
window.show()
sys.exit(app.exec_())
/* 通配符选择器 */
/*
* {background-color: cyan;}
*/
/* 类型选择器 */
/*
QWidget {background-color: red;}
*/
/* 类选择器*/
/*
.QPushButton {background-color: red;}
*/
/* ID选择器*/
/*
#btn2 {background-color: yellow;}
*/
/* 属性选择器*/
/*
QLabel[level = 'wanrning_w1'] {background-color: yellow;}
QLabel[level] {background-color: green;}
*/
/* 后代选择器 */
/*
QWidget#w1 QLabel{background-color: blue;}
*/
/*子选择器*/
/*
QWidget#w1>QLabel{background-color: blue;}
*/
/* 复合控件子控件选择器*/
QComboBox::drop-down{background-color: blue;}
/* 组合使用*/
QWidget#w1>QLabel,#btn1,#btn2{
background-color: pink;
}