1. 继承
样式表会在子对象 和派生类继承。
1.1 在子对象继承
cpp
QWidget* w1 = new QWidget(this);
w1->setGeometry(0,0,300,300);
// w1设置QWidget样式为粉底,蓝边框
w1->setStyleSheet("QWidget{"
"border-width: 2px;"
"border-style: solid;"
"border-color: blue;"
"background-color: pink;}");
// w2为w1子对象 且是QWidget,继承w1样式表
QWidget* w2 = new QWidget(w1);
w2->setGeometry(0, 0, 50, 50);
运行结果:

2. 在派生类继承
w1设置QWidget样式表,在QWidget w1上创建QPushbutton btn,因为QPushbutton是QWidget的派生类,所以btn会继承w1样式
cpp
QWidget* w1 = new QWidget(this);
w1->setGeometry(0,0,300,300);
// w1设置QWidget样式为粉底,蓝边框
w1->setStyleSheet("QWidget{"
"border-width: 2px;"
"border-style: solid;"
"border-color: blue;"
"background-color: pink;}");
// 在w1上创建button
QPushButton* btn = new QPushButton(w1);
btn->setGeometry(0,0,100,50);
运行结果:

3. 不在派生类继承
由于样式表会在派生类自动继承,而QWidget是几乎所有控件类的基类,所以在给QWidget设置样式表时,例如QPushButton等这些派生类都会自动继承QWidget的样式表,即使我们并不想让button使用QWidget的样式表,所以可以使用这种选择器:

cpp
QWidget* w1 = new QWidget(this);
w1->setGeometry(0,0,300,300);
// w1设置QWidget样式为粉底,蓝边框
w1->setStyleSheet(".QWidget{" //只给QWidget设置,不给其派生类设置
"border-width: 2px;"
"border-style: solid;"
"border-color: blue;"
"background-color: pink;}");
// 在w1上创建button
QPushButton* btn = new QPushButton(w1);
btn->setGeometry(0,0,100,50);
// 在w1上创建QWidget
QWidget* w2 = new QWidget(w1);
w2->setGeometry(0,200,100,50);
运行结果:可以看到,使用了 ".QWidget"选择器后,在w1上创建的QPushButton并没有继承 w1的样式表,而在 w1上创建的QWidget w2则继承了w1的样式表。

4. 其他的一些规则
