1、两种样式表的写法
方式一(普通写法):
this->setStyleSheet("QPushButton"
"{"
"background:yellow;"
"font:bold 14px;"
"color: red;"
"}"
"QPushButton:hover"
"{"
"background-color:gray;"
"color:white;"
"}"
"QLabel"
"{"
"background-color:blue;"
"}");
方式二(使用R字符串优化):
this->setStyleSheet(R"(
QPushButton
{
background:yellow;
font:bold 14px;color: red;
}
QPushButton:hover
{
background-color:gray;color:white;
}
QLabel
{
background-color:blue;
}
)");
值得注意的是setStyleSheet()该方法只能用于设置有父窗口的子窗口的样式,如果一个窗口没有父窗口,则使用setStyleSheet()不起作用。
2、常用的选择器类型
3、给不同的选择器指定相同的属性和值
QPushButton, QLineEdit, QComboBox { color: red }
4、子控件示例
QComboBox::drop-down { image: url(dropdown.png) }
5、伪状态示例
QPushButton:hover { color: white }
QRadioButton:!hover { color: red }/*使用感叹号表示否定,鼠标没有悬停到QRadioButton时才应用规则*/
QCheckBox:hover:checked { color: white }/*伪状态多个连用,达到逻辑与效果*/
QCheckBox:hover, QCheckBox:checked { color: white }/*这样写可以达到逻辑或效果*/
QComboBox::drop-down:hover { image: url(dropdown_bright.png) }/*伪状态和子控件联合使用*/
6、盒子模型
当使用样式表时,每一个部件都被看作拥有4个同心矩形的盒子模型,如下图所示:
边距(margin)、边框宽度(border)和填衬(padding)等属性的默认值是0,这样四个矩形恰好重合。