//这个实在是难翻译,很多地方直译,因为我也没看懂
 
细微控制:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

为了风格化复杂的widget,那是必须的进行widget的细微控制。例如一个QComboBoxdrop-down按钮,或者一个QSpinBox的上下线。选择器可能包含细微控制,使限制一个规则的应用来说明widget细微控制。例如:

上面的规则风格化所有的QComboBox的上下按钮。尽管双冒号::语句像CSS3Pseudo-ElementsQt的细微控制不同于这些,有不同的级联语义。
细微控制总是定位根据另一个元素--—一个参考元素。这个参考元素能是widget或者另一个细微控制。例如,一个QComboBox的::drop-down被定位,缺省的,在QComboBox衬底矩形的右上角。::drop-down被定位,缺省的,在::drop-down微调内容矩形的中心。看
List of Stylable Widgets 来风格化一个widget和他们缺省的位置。
起点能被改变通过使用subcontrol-origin。例如,如果我们想定位drop-downQComboBox空白处代替缺省的衬底部分,我们能这样:

drop-down 的对齐在空白矩形范围可以通过subcontrol-position改变。宽度和高度属性能被用来控制微调的大小。注意设置一个图片潜在的设置了微调的大小。

相对位置的设置方法(positionrelative),允许微调的位置抵消他的原来的位置。例如,当QComboBoxdrop-down按钮被按下,我们可能想要一种被按下的效果。如下:

绝对位置的设置方法(positionabsolute),允许微调的位置和大小被改变与参考元素相关。一旦定位,他们被对待和widget一样,能被风格化通过使用box model。看 List of Sub-Controls为支持的微调。

注意:对于复杂的widget例如QComboBoxQScrollBar,如果一个属性或者微调被定制,所有其他的属性或者微调必须也被定制。

虚假状态:

选择器可能包含虚假状态,指出限制那些基于widget状态规则的应用。虚假状态出现在选择器的结尾,用一个冒号(:)。例如

虚假状态能被取反,通过使用叹号操作。例如

虚假状态能被连接,相当于逻辑与。例如

也可以用逗号代替

虚假状态也能和微调结合

冲突解决:

冲突产生,当一些风格语句改变相同的属性,使用不同的值。考虑下面的风格语句:

为解决这个冲突,我们必须了解选择器的特性。在上面的例子中, QPushButton#okButton是被认为更特别的比起QPushButton,因为他代表单个的对象,不是所有的一个类的例子。

同样的,带虚假状态的选择器是更特别的比起没有虚假状态的。因此,下面的风格语句表明:

当一个鼠标滑过QPushButton时,有白色的text,否则红色text

这是一个复杂的。

两个选择器有相同的特性,所以如果鼠标滑过按钮当他使能时,第二个规则取得优先权。如果我们想要text在那种情况为白色,我们可以这样

作为选择,我们也可以使第一个规则更特别

一个相同的问题产生,

两个规则都应用于QPushButton,因为QPushButton继承QAbstractButton,他可能试着假设QPushButton是更特别比QAbstractButton。尽管如此,对于风格计算,所有的类型选择器有相同的特性,最后一个出现的规则有优先权。换句话说,颜色被设置成gray对于所有的QAbstractButton,包括QPushButton。如果我们真的想要QPushButton有红色text,我们能够重新设置规则。

为了决定一个规则的特性,Qt Style Sheets效仿CSS2 Specification

一个选择器的特性被计算像下面:

ID属性数在选择器中。=a

数其他属性和虚假类的数目在选择器中。=b

数元素名字的数目在选择器中。=c
忽略虚假属性
连接三个数目a-b-c(在一个数目系统带着一个大的基数)给出特性。

级联:

Style sheet 能被设置在QApplication,在父窗口,在孩子窗口。一个随意的widget的有效地style sheet是被包含通过合并设置在widget的祖先的style sheet,也任何被设置在QApplication上的style sheet
当冲突产生,widget的自己的style sheet总是跟喜欢任何继承的style sheet,不同于冲突的规则的特性。否则,父窗口的style sheet更喜欢祖父的。
这样的一个结果是设置一个style 规则在一个widget自动的,给他优先权盖过其他的规则在祖先widgetstyle sheet或者QApplication style sheet。考虑下面的例子,

 
   

 
   

 

 
   

 

设置对象属性:

qt4.3和以上的版本,任何能设计的Q_PROPERTY能被设置使用qproperty-<property name>语句。

如果属性参考一个enum类型Q_ENUMS,你能参考他的常量通过名字,不是他们的数字值。