QStyle sheet Qt样式表
Qt样式表(Qt Style Sheet)是由Qt提供的一套用于定义Qt控件的工具,和CSS的语法类似,用户通过定义QSS可以使用户自定义Qt控件的样式。
1.语法规则
选择器类型
选择器 | 例子 | 描述 |
---|---|---|
通用选择器 | * | 对所有Widget有效 |
类型选择器 | QPushButton | 对所有QPushButton的实例以及所有的QPushButton的子类型实例有效 |
属性选择器 | QPushButton[flat=“false”] | 对所有QPushButton中flat属性为false的实例有效。 |
类选择器 | .QPushButton | 对所有QPushButton的实例有效,但是对QPushButton的子类型实例无效。和*[class ~= “QPushButton”]等效 |
ID选择器 | QPushButton#okButton | 对QPushButton中对象名为OKButton的实例有效。 |
后代选择器 | QDialog QPushButton | 对所有的QDialog后代类型有效中的QPushButton实例有效(子类型,孙子类型等) |
子选择器 | QDialog > QPushButton | 对QDialog的子类型中的QPushButton实例有效。但是不包括孙子类型。 |
子控件(Sub-Controls)
对于一些复杂的控件,Qt样式允许设置最小的子控件样式。
子控件常常相对于其他元素(参考元素)进行定位,参考元素可以是Widget也可以是其他子控件(Sub-Controls)。举个例子,QComboBox
的子控件::drop-down
的默认位置为在QComboBox
的Padding矩形(填充矩形)的右上角。dorp-down
的默认位置在子控件drop-down
的Contents矩形的中心位置。
可以通过subcontrol-origin
熟悉改变子控件的需要使用的原点矩形。例如,QComboBox
的默认原点矩形为Padding矩形,想改变为Margin矩形(边距矩形)
QComboBox
{
margin-right: 20px;
}
QComboBox::drop-down
{
subcontrol-origin: margin;
}
可以通过width
和height
属性控制子控件的尺寸。注意:设置image
属性会隐式的设置子控件的尺寸。
设置相对位置策略(position:relative
),可以调整子控件从其实原点的偏移值。例如,当QComboBox
的drop-down
按钮被按下以后,可以通过设置一个偏移值,表现出按钮被按下的效果:
QComboBox::drop-down
{
image:url(down_arrow.png);
}
QComboBox::drop-arrow:pressed
{
position: relative;
top:1px;
left