1、QSS伪装态:限制控件只能在某种状态下被样式表作用。(当鼠标按下去是一种样式)
hover:鼠标移动到控件上才会作用样式表的声明。
复选框左侧的方框在不同的状态下(选中和未选中状态)设置不同的图片:
复选框支持三态的情况是需要设置才可以:cb.setTristate(True)
2、focus控件获取焦点:(获取焦点之后设置绿色的边框)
QWidget:focus{
border:2px dotted green;
}
控件被禁用,修改特定样式,如果控件有效,设置其他样式:(特异性:当指名特定的控件名,他的特异性更强,作用效果会生效,不会被覆盖)
QWidget:disable{
font-size:26px;
background-color:orange;
}
QWidget:enable{
font-size:16px;
background-color:lightgray;
}
on和off可以等同于checked和unchecked(),用于可切换状态的控件。
3、注意:
当所有控件都没有获取焦点则给它加一个绿色的边框:
QWidget:!focus{
border:2px dotted green;
}
伪装态可以连用: (并且的关系)
QCheckBox:checked, QCheckBox:hover{
background-color:red;
}
(或者的关系)
QSS声明简介:(指名会作用怎样的样式)
4、基本声明:盒子模型:一般是通过控制边框的内外边距等间接控制内容矩形(不会直接控制内容矩形)。
边框包括:(控件的边框就是围绕控件内容和内边距的一条或多条线)
常用的边框取值:点状边框、虚线、实线、双线等。
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("样式声明的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
label = QLabel("标签测试", self)
label.resize(300, 300)
label.move(100, 100)
self.qss边框(label)
def qss边框(self, label):
# 这个label的选择范围包括:label控件和他的子控件
# 四条线设置统一的格式
label.setStyleSheet("""
QLabel{
background-color:cyan;
border-width:6px;
border-style:dotted soild dashed double;
border-top-style:groove;
}
""")
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = Window()
window.resize(500, 500)
window.show()
sys.exit(app.exec_())
5、宽度设置:分开设置不同位置的宽度,使用空格隔开就可,
常用的取值:em=16px
label.setStyleSheet("""
QLabel{
background-color:cyan;
border-width:6px 20px;
border-style:dotted soild dashed double;
border-top-style:groove;
}
""")