Qt——浅谈样式表

优秀的程序,不仅要有严密逻辑,而且应该有美观的外表。从软件界面,便可看出你是否用心在做,是否是一个有思想的人。

Qt样式表的术语和语法规则和HTML CSS有很多相似之处。

样式规则

Qt中样式规则由“选择器”和“声明”构成。选择器决定了该规则影响的是哪个Widget;声明决定了该规则把哪些属性设置到了Widget上。

比如QPushButton{color:red},这条规则指定了QPushButton以及它的子类使用红色作为它的前景色。

多个选择器可以使用同样的声明,使用逗号,将它们隔开。

比如QPushButton, QLineEdit, QComboBox{color:red}

选择器的种类

选择器

例子

说明

通配选择器

*

匹配所有的widget

类型选择器

QPushButton

匹配QPushButton的所有实例及其子类

属性选择器

QPushButton[flat="false"]

匹配所有不是flat的所有QPushButton的实例。

代码中这样写button->setProperty("flat", false);

注意:如果样式表已经设置了,这时你改变属性值,那么有必要强制刷新它的样式。一种方法是先去掉样式然后重新设置。

QStyle *pStyle = this->style();

pStyle->unpolish(button);

pStyle->polish(button);

类选择器

.QPushButton

匹配QPushButton的所有实例,但是不包括它的子类。

ID选择器

QPushButton#okButton

匹配所有object name是okButton的QPushButton。

button->setObjectName("okButton");

后代选择器

QDialog QPushButton

匹配所有属于QDialog后代(子、孙...)的QPushButton的实例。

孩子选择器

QDialog > QPushButton

匹配所有属于QDialog儿子的QPushButton的实例。

子控件和伪状态

使用双冒号::设置复杂空间的子控件的样式,使用单冒号:设置控件的伪状态,比如hover、press等。

原文地址:https://www.cnblogs.com/hellovenus/p/5259565.html