一、简述
在上一篇Qt 之 样式表的使用——样式选择器(上篇) 文章中讲述了前四种样式选择器,今天完成剩下的几种选择器的介绍。
二、样式选择器
样式表的样式规则
今天开头先简单讲解一下样式表的样式规则。
Qt文档给出的解释 :A style rule is made up of a selector and a declaration.
简单点就是 选择器 + 样式声明语句 (Selector + Declaration)
每一条样式规则都是由选择器和具体的样式声明语句组成。选择器的作用就是指定哪些控件需要设置声明的样式,而样式声明就是对指定的控件设置什么样的效果。
QPushButton { color: red }
对这条样式规则而言,QPushButton就是选择器,而{ color: red }就是样式声明。
同时Qt样式表在语法上不区分大小写。而类名、控件名、Qt属性名这些是区分大小写的。
如果我们需要对几种控件都设置相同的样式时,简单一点,就是对一条样式声明语句同时用几个选择器,并且用用逗号隔开选择器。
QPushButton, QLineEdit, QComboBox { color: red }
这样的写法相当于
QPushButton { color: red }
QLineEdit { color: red }
QComboBox { color: red }
选择器包括七种基本类型以及状态选择其和子控件选择器。
对于样式声明语句部分,其实就是一系列的属性:值对。每一条属性:值对用分号隔开,并且所有的属性:值对都放在{ }中。
下面这两条属性:值对之间就是用分号隔开,并且用{ }括起来。
QPushButton { color: red; background-color: white }
这里,我们对样式表的样式规则介绍完了,其实也比较简单,但是这里还是想提一下。好,下面我们就接着介绍剩下的几种选择器。
ID选择器 (ID Selector)
ID Selector QPushButton#okButton Matches all QPushButton instances whose object name is okButton.
这里的ID指的就是控件的objectName。主要有两种方式:
A、类型名称 + # + objectName + {“样式”}
限定了作用域,也就是对具体某个类型的控件,如果控件名称为objectName时设置该样式。
B、* + # + objectName + {“样式”} 或者 # + objectName + {“样式”}
不限制作用域,只要控件名称为objectName