选择器决定了 style sheet 作用于哪些 Widget,QSS 支持 CSS2 定义的所有选择器。
QSS 的选择器有:
- 通用选择器 *
- 类型选择器
- 类选择器
- ID 选择器
- 属性选择器
- 包含选择器
- 子元素选择器
- 伪类选择器
- Subcontrol 选择器
很多时候,可以使用不同的选择器实现相同效果的样式,使用非常灵活。
文章最后为大家准备了Qt资料
↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡↡
通用选择器 *
* 作为选择器,作用于所有的 Widget。
类型选择器
类名 作为选择器,作用于它自己和它的所有子类。
QFrame {
background: gray;
}
使用了类型选择器 QFrame,所以 QFrame 和它的子类 QLable,QLCDNumber,QTableWidget 等的背景会是灰色的,QPushButton 不是 QFrame 的子类,所以不受影响:
类选择器
. + 类名 或者 . + class 的属性值 作为选择器,只会作用于它自己,它的子类不受影响。
#include <QApplication>
#include <QPushButton>
#include <QHBoxLayout>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
app.setStyleSheet("QWidget { background: gray; }");
QWidget *window = new QWidget();
QPushButton *openButton = new QPushButton("打开", window);
QPushButton *closeButton = new QPushButton("关闭", window);
QPushButton *saveButton = new QPushButton("保存", window);
QHBoxLayout *layout = new QHBoxLayout(window);
layout->addWidget(openButton);
layout->addWidget(closeButton);
layout->addWidget(saveButton);
window->setLayout(layout);
window->show();
return app.exec();
}
window, openButton, closeButton 和 saveB