概念
Qt样式表(style sheet)适用于定制用户界面的强有力的机制,其概念、术语是收到HTML中的CSS启发而来,不过Qt样式表是应用于窗体界面的
与HTML的CSS类似,Qt的样式表是纯文本的格式定义,在应用程序运行时可以载入和解析这些样式定义,从而使应用程序的界面呈现不同的效果
样式表具有继承关系,例如为一个QWidget类设置了样式表,那么QWidget类及其子类都会使用这个样式表
很多软件有换肤功能,就是使用类似于样式表的功能
一、Qt样式表的句法
①一般句法格式与CSS句法几乎完全相同
一个样式法由一个“选择器”和一些“声明”组成
例如,对一个QPlainTextEdit组建进行样式设计
②选择器(selector)
Qt样式表支持CSS2中定义的所有的选择器,见下图
案例1:下面的样式同时应用于QPlainTextEdit、QLineEdit、QPushButton、QCheckBox
案例2:下面的样式应用于readOnly属性为true的QLineEdit和checked属性为true的QCheckBox
案例3:为一个界面组件使用QObject::setProperty()设置一个动态属性,下面为这3个组件设置一个“required”属性为true
那么下面的样式将应用于属性“required”为true的组件
③子控件(sub-controls)
何为子控件:Qt中有一些组合的界面组件,例如QComboBox的下拉按钮或QSpinBox的上、下调节按钮,这些按钮就是子控件
子控件使用伪状态:见下面④
案例1:下面是对QComboBox的下拉按钮设置样式(可以看到默认的下拉按钮被设置为我们制定的图片了)
案例2:下面是对QSpinBox的上下调节按钮设置样式