QSS (Qt Style Sheets) 在支持大部分 CSS2.1 特性的基础上,还引入了一些专为 Qt 设计的独有扩展。这些扩展提高了 QSS 在定制 Qt 应用程序界面方面的能力,使得开发者可以更灵活地控制应用程序的外观。以下是一些 QSS 独有的扩展特性:
1. 子控件选择器
QSS 允许通过子控件选择器来指定特定的子控件样式,这在 CSS 中是没有的。例如,对于复合控件(如 QSpinBox,它由一个编辑框和两个按钮组成),你可以单独设置每个部分的样式:
QSpinBox::up-button { width: 20px; }
QSpinBox::down-button { width: 20px; }
2. 伪状态
Qt 引入了一些特定的伪状态,这些状态对应于 Qt 控件的特定状态。这些伪状态包括 :disabled
, :hover
, :pressed
, :checked
, :unchecked
, :indeterminate
(对于复选框而言)等,这些都是 CSS 中没有的。
QPushButton:pressed {
background-color: #888888;
}
3. ID 选择器
QSS 支持使用 Qt 控件的 objectName
作为 ID 来应用样式。这意味着你可以为具有特定 objectName
的控件指定样式,而不影响其他同类控件。
#myButton {
background-color: #444444;
}
4. 类选择器
QSS 中的类选择器允许开发者为设置了特定 property
的控件应用样式,这类似于为控件添加了自定义的标记或类。
QPushButton[myProperty="true"] {
background-color: #444444;
}
5. 图像资源的引用
QSS 允许直接在样式表中使用 Qt 资源文件(如::url(:/images/myimage.png)
),这使得管理和使用图像资源变得更加方便。
QPushButton {
background-image: url(:/images/button.png);
}
6. 特定控件属性
QSS 还允许开发者通过样式表直接设置某些控件的特定属性,这是通过特定的属性名实现的,而这些属性名是 Qt 控件特有的,CSS 中并不提供。
以上特性使得 QSS 在定制和美化 Qt 应用程序方面非常强大和灵活。开发者可以利用这些扩展特性来创建富有表现力和高度定制的用户界面。