标签:
原地址:http://blog.csdn.net/lastsoup/article/details/7043124
Qt的皮肤设计,也可以说是对Qt应用程序的界面美化,Qt使用了一种类CSS的样式规则QSS。
一、Style Sheet的应用
1.直接在程序代码中设置样式,利用setStyleSheet()方法
widget->setStyleSheet("color:red"); //widget内字体颜色为红色
widget->->setStyleSheet(QPushButton{color:red} QPushButton:hove{color:yellow});
//widget内的QPushButton对象字体颜色为红色,当鼠标悬浮时为黄色
2.使用qss文件
步骤:
创建qss文档,例:stylesheet.qss
根据qss语法,写自定义的内容(详见qss语法)
引入qss文件,使界面效果生效
QFile file("skin/clean.qss");//路径为应用程序所在目录开始
file.open(QFile::ReadOnly);
QTextStream filetext(&file);
QString stylesheet= filetext.readAll();
this->setStyleSheet(stylesheet);
二、qss语法
qss和css一样有两部分组成,选择器和语句声明(selector和declaration)
选择器分为一般选择器、子控件选择器(辅助控制器)和伪选择器(伪状态)(下面为转载,出处http://www.cnblogs.com/davesla/archive/2011/01/30/1947928.html)
1、 一般选择器(selector)
Qt支持所有的CSS2定义的选择器,其祥细内容可以在w3c的网站上查找http://www.w3.org/TR/CSS2/selector.html , 其中比较常用的selector类型有:
2、子控件选择器
如果你要查看Qt支持哪些子控件选择器,可以参考:http://pepper.troll.no/s60prereleases/doc/stylesheet-reference.html#list-of-sub-controls-syntax.html
3、伪选择器(pseudo-states)
常用的语句声明
基本用法
QPushButton { color: red }
多个共享属性( , )
QPushButton, QLineEdit, QComboBox { color: red }
设置多个属性( ; )
QPushButton { color: red; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px;">
常用的属性
color:red //字体颜色为红色
background:yellow //背景颜色为黄色
rgba(255,0,0,50%)最后为透明度 #ffffff颜色RGB值
background-image:url(images/top.jpg);//背景不随窗口伸缩
border:1px solid gray //边框为1px并填充实心灰色 (groove凹槽)
border-top boder-botom……
boder-color
border-radius:10px //边框圆角半径为10px
border-top-left-radius
border-top-rightt-radius
……
border-image:url(images/top.jpg);//背景图片随窗口变化
padding:2px 4px //设置内边框属性上内边距2px,右内边距为4px,下为0,左为0可不写(上右下左)
##设置背景颜色渐变
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #C7F8FA); /*背景颜色:颜色渐变(x1右,y1下,x2左,y2上,stop渐变点(0-1):颜色) ,y2:1颜色从上向下渐变*/
详细参考http://doc.qt.nokia.com/latest/stylesheet-reference.html的List of Properties
以上所有可查看Qt的在线帮助手册http://doc.qt.nokia.com/latest/stylesheet.html
http://www.cnblogs.com/lanye/p/3533735.html
标签:
原文地址:http://www.cnblogs.com/findumars/p/5529532.html