Qt样式表(style sheet)是用于定制用户界面的强有力的机制,其概念、术语是受到HTML中的级联样式表(Cascading Style Sheets,CCS)启发而来,只是Qt样式表是用用于窗体界面,与HTML的CSS类似,Qt的样式表是纯文本的格式定义,在应用程序运行时可以载入和解析这些样式定义。使用样式表可以定义各种界面组件(QWidget类及其子类)的样式,从而使应用程序的界面呈现不同的效果。很多软件具有换肤功能,使用Qt的样式表就可以很容易的实现这样的功能
多多翻看Qt官方文档,所有控件都有案例:在索引栏输入Qt style
1.盒子模型
默认情况下MARGIN矩形、BORDER矩形、PADDING矩形的宽度都为0,这样在默认情况下,4个矩形就重合为1个CONTENT矩形了。
同样,默认情况下background-image指定的背景,只在border内的区域绘制。但我们要也可以使用background-clip或background-origin属性来更改这种默认行为。
background-image
按图片实际尺寸显示图片,超过控件显示区域的部分会被裁剪掉,虽能显示SVG,但无法对SVG进行无损缩放;- image按图片原长宽比来缩放图片,保证填充满控件content区域,支持SVG矢量图显示和无损缩放;
- border-image 按控件border区域的长宽比来缩放图片,保证填充满控件border区域,支持SVG矢量图显示和无损缩放
- 绘制顺序:如果在一个控件中同时指定
background-image
,border-image
,image
这三个属性,会按照如下的顺序进行绘制:
先绘制 background-image
然后 border-image
最后 image
2.QSS加载方式
3. QSS选择器类型
4.QSS常用属性
5.QSS伪状态和子控件
6.QSS的级联
7.QSS继承
8.Qt自带样式参考
Qt中自带了许多样式example可以在Assistant中查找这些样式进行参考,实际项目中对于一些工具类软件,样式要求不高可以参考修改应用;但对于出售的重交互类商业软件样式极为重要,必须严格遵循UI设计的稿子进行样式设置。