Lilong Zhang / QSS选择器

Created Wed, 19 Jan 2022 14:01:25 +0000
609 Words

通配符选择器

* 匹配所有控件。

* {

}

类型选择器

通过控件类型来匹配控件(包括子类)。

QPushButton {
	
}

匹配所有 QPushButton 及其子类的控件。

类选择器

通过控件类型来匹配控件(不包括子类)。

.QPushButton {
	
}

只匹配所有 QPushButton 控件,不包含子类。

ID选择器

通过 objectName 来匹配控件。

#hehe {
	
}

匹配所有 objectName 为 hehe 的控件。

objectName 可通过 setObjectName 方法设置。

属性选择器

通过属性值来匹配控件。控件类型[属性名=“属性值”]

QPushButton[level="warning"] {
	
}

匹配所有 QPushButton 控件,并且 level 属性值为"warning"。

属性可通过 setProperty 方法设置。

后代选择器

匹配 父控件(直接或者间接)的子控件。

QDialog QPushButton {
	
}

匹配所有 QDialog 中直接或间接包含的 QPushButton 控件。

子选择器

匹配父控件直接包含的子控件。

QDialog>QPushButton {
	
}

匹配所有 QDialog 中直接包含的 QPushButton 控件。

子控件选择器

用来筛选一个复合控件上的子控件。 复合控件::子控件

常用子控件:

  1. QCheckBox, QRadioButton
    • ::indicator
  2. QComboBOx
    • ::drop-down
  3. QSpinBox, QDateEdit, QRimeEdit, QDateTimeEdit
    • ::up-button
    • ::down-button
    • ::up-arrow
    • ::down-arrow

伪状态选择器

限制控件只能在某种状态下,被样式表作用。

QPushButton:hover {
	
}

QPushButton 被鼠标经过时的样式。

常见的伪状态:

  • :checked button控件被选中
  • :unchecked button控件未被选中
  • :hover 控件被鼠标放在上面
  • :pressed 控件被按下
  • :focus 控件获取焦点
  • :disable 控件失效
  • :enable 控件有效
  • :indeterminate checkBox或者radioButton被部分选中
  • :on 控件处于on状态
  • :off 控件处于off状态

注意

  • 不同的控件可能有某种特定的伪状态,无法通用,具体查看官方文档。
  • !可以否定。:!checked 没有被选中。
  • 可以连接使用。 :hover:checked 鼠标在上and被选中时。

以上选择器分类可以组合使用,用逗号隔开即可。

#hehe, #heihei {
	
}