PyQt5学习日记020

一、QSS(Qt样式表)

给gui界面设置样式时,对每一个控件都用setStyleSheet()方法太过繁琐,这里提供了一个较为简便的方法,即创建qss样式文件,在文件中设置各种的样式,然后父控件只需要setStyleSheet(xxx.qss样式i文件)就可以成功应用所设置的样式了。
例如:
#1 创建xxx.qss文件

QLabel#l1{
background-color : cyan
}

QLabel#l2{
background-color : Green
}
#注意: 上述qss文件中的  QLabel #l1  表示对QLabel控件中编号为l1的控件进行设置,#是定位符

#2 调用qss文件

app =QApplication(sys.argv)
w = QWidget()
Label1 = QLabel("xx1",w)
Label1.setObjectName("l1") #设置编号为l1
Label2 = QLabel("xx2",w)
Label2.setObjectName("l2")
Label2.move(100,100)
w.show()
with open("xxx.qss","r") as f:
	content = f.read()
	app.setStyleSheet(content)
sys.exit(app.exec_())

qss文件的语法格式:qss选择器 : 伪状态 {qss声明}
qss选择器的作用就是选择想要修改样式的具体控件,伪状态就是控件的状态,qss声明就是具体的样式代码。
例如:

QLabel#l1 : hover{
background-color : red
}
QLabel#l1{
background-color : cyan
}

鼠标放上去的时候(hover状态)标签l1的颜色为红色,鼠标不在标签上时为青蓝色。

1.1 qss选择器类别
①通配符选择器,即选定所有控件。

* {qss声明}

②类型选择器,选定指定类型及其所有子类控件。

QPushButton {qss声明}     #选定所有QPushButton控件及其子类控件,并应用qss声明的样式

③类选择器,仅选定指定类型控件

.QPushButton {qss声明}     #选定所有QPushButton控件,并应用qss声明的样式

④ID选择器,用符号“#”来指定需要更改样式的控件

label1 = QLabel(w)
Label1.setObjectName("l1")   将label1的ID设置为“l1”

qss文件:

#指定QLabel类型的l1控件更改背景颜色为红色
QLabel#l1 {      
background-color : red
}

⑤属性选择器,通过控件的某个属性值来匹配样式

label1 = QLabel(w)
Label1.setProPerty("notice_level","warning")   给label1设置一个notice_level属性并赋值为warning

qss文件:

#指定QLabel类型控件中notice_level属性为warning的控件的边框为红色
.QLabel['notice_level'='warning'] {      
	border :3px solid red 
}

⑥后代选择器,只选择该控件直接或间接包含的所有控件

qss文件:

#选定id为w1的控件中所有的QLabel控件
QWidget#w1 QLabel {      
background-color : red
}

⑦子选择器,只选择该控件直接包含的控件。
qss文件:

#选定id为w1的控件中直接包含的QLabel控件
QWidget#w1>QLabel {      
background-color : red
}

⑦子控件选择器,只选择某一复合控件(例如复选框,有框和文本两部分组成)中的一部分。
在这里插入图片描述
如果有多组控件设置同一样式,可以用一个选择器,后面放多个控件,控件之间用逗号隔开即可。

1.2 QSS伪状态
在这里插入图片描述
1.3 样式设置
如下图所示的盒子模型,pyqt界面中的大多数控件都符合以下模型,当你修改样式时可参照图中所示边框参数进行修改。
在这里插入图片描述
每个边框都有三个方面:样式、宽度和颜色。
样式设置:
在这里插入图片描述
通常在qss文件中进行设置,例如:

QLable {
background-color:cyan;
board-width:6px;
board-style:groove
}

宽度设置:
在这里插入图片描述
颜色设置:
在这里插入图片描述
渐变色:
在这里插入图片描述
在这里插入图片描述
1.4 边框处理
把某个矩阵的直角换成圆弧,这个圆弧的绘画只需要确定半径即可,因为圆心一定是在直角的角平分线上。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.4 背景设置
在这里插入图片描述
1.5 字体类型和颜色设置
在这里插入图片描述
实验代码:
在这里插入图片描述
在这里插入图片描述
实验代码:
在这里插入图片描述

二、控制控件中的子控件

qss文件中控制向上向下按钮控件的代码
在这里插入图片描述
qss文件中控制向上按钮靠近左侧代码:
在这里插入图片描述
效果:
在这里插入图片描述

三、级联和冲突

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值