1.QSS使用方法
1.Qss是什么
QSS类似css是对qt的控件进行样式设置的重要方法,大多数好看的控件,都是通过QSS搭建成的
Qss官方例子:Qt Style Sheets Examples | Qt Widgets 5.15.11
Qss官方文档:Qt Style Sheets Reference | Qt Widgets 5.15.11
2.使用qss
在pyqt中,有两种方法去使用Qss。
第一种是在qtdesigner中通过设置样式表的方式设置。
第二种是在通过代码设置,通过 控件.setStyleSheet("")函数设置。
3.QSS选择器
3.1选择器
qss基了css的选择器机制,但是和css的选择器还是有不同之处。
如
直接进行了设置,没有使用选择器,那么设置会对被设置控件和其子级(子,孙...)都起效果。
QPushButton{
border: 0;
background-color:rgb(33, 37, 43);
color: rgb(255, 255, 255);
font: 10pt "华光黑体_CNKI";
background-color: qlineargradient(spread:repeat, x1:0, y1:0, x2:0, y2:1, stop:0.0343348 rgba(138, 140, 142, 255), stop:0.519313 rgba(38, 33, 39, 255), stop:1 rgba(70, 69, 71, 255));
}
QPushButton#prePb{
border: 0;
background-color:rgb(33, 37, 43);
color: rgb(255, 255, 255);
font: 10pt "华光黑体_CNKI";
background-color: qlineargradient(spread:repeat, x1:0, y1:0, x2:0, y2:1, stop:0.0343348 rgba(138, 140, 142, 255), stop:0.519313 rgba(38, 33, 39, 255), stop:1 rgba(70, 69, 71, 255));
}
类选择器可以对一类控件进行设置。
在类选择器的基础上加#控件名。可对单独叫这个名字的控件进行设置。
子选择器比较有用可以记一下。
3.2控件的伪状态
可以选择控件的状态进行设置。
如
QPushButton:pressed{
background-color:rgb(69, 185, 124);
}
QPushButton:hover{
background-color:rgb(69, 185, 124);
}
QPushButton:pressed设置鼠标按压时的状态
QPushButton:hover设置鼠标悬浮的状态
3.3子控件
有些复杂的控件,有它的自带的子控件,需要用专用的格式去选择。
4.QSS设置
QSS是用键值对的方式设置的属性。
可以在这里进行颜色,字体,背景图片的设置。
4.1设置图片方法
border-image: url(icon/yidong.png) 即border-image: url(图片路径)
用background-image也可以设置。
如果背景图和按钮一样大时使用 background-image 没有任何问题,但是当按钮和背景图不一样大时,背景图要么显示不全,要么重复平铺到按钮上。但用border-image可以解决问题。
如果图片太大,设置border可以缩小图片大小。如:border:2px solid rgb(0,0,0);当然
solid 和rgb(0,0,0)有没有都无所谓,但宽度必须设置。
4.2border的设置
设置边框:border:2px solid rgb(0,0,0);
注意设置了border-image后再设置border就没有用了,不过会导致border-image变小。
4.3 设置label为圆形
用border-radius设置label的圆角。
min-width这种是当width和height设置无效时设置这个,无视它吧。
保持width和height是radius的2倍。
background-color: rgb(85, 255, 0);
min-width:40px;
min-height:40px;
max-width:40px;
max-height:40px;
border-radius: 20px;
border:1px solid black;