QT的皮肤设计.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:2 大小:17KB 金币:12 举报 版权申诉
预览加载中,请您耐心等待几秒...

QT的皮肤设计.doc

QT的皮肤设计.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

12 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Qt的皮肤设计Qt的皮肤设计(StyleSheet)Qt的皮肤设计,也可以说是对Qt应用程序的界面美化,Qt使用了一种类CSS的样式规则QSS。一、StyleSheet的应用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文件,使界面效果生效QFilefile("skin/clean.qss");//路径为应用程序所在目录开始file.open(QFile::ReadOnly);QTextStreamfiletext(&file);QStringstylesheet=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类型有:通用类型选择器:*会对所有控件有效果。类型选择器:QPushButton匹配所有QPushButton的实例和其子类的实例。属性选择器:QPushButton[flat=”false”]匹配所有QPushButton属性flat为false的实例,属性分为两种,静态的和动态的,静态属性可以通过Q_PROPERTY()来指定,来动态属性可以使用setProperty来指定,如:QLineEdit*nameEdit=newQLineEdit(this);nameEdit->setProperty("mandatoryField",true);如果在设置了qss后Qt属性改变了,需要重新设置qss来使其生效,可以使用先unset再setqss。类选择器:.QPushButton匹配所有QPushButton的实例,但不包含其子类,这相当于:*[class~="QPushButton"]~=的意思是测试一个QStringList类型的属性是否包含给定的QStringID选择器:QPushButton#okButton对应Qt里面的objectname设置,使用这条CSS之前要先设置对应控件的objectname为okButton,如:Ok->setObjectName(tr(“okButton”));后裔选择器:QDialogQPushButton匹配所有为QDialog后裔(包含儿子,与儿子的儿子的递归)为QPushButton的实例子选择器:QDialog>QPushButton匹配所有的QDialog直接子类QPushButton的实例,不包含儿子的儿子的递归。2、子控件选择器对于复杂的控件,可能会在其中包含其他子控件,如一个QComboxBox中有一个drop-down的按钮。那么现在如果要设置QComboxBox的下拉按钮的话,就可以这样访问:QComboBox::drop-down{image:url(dropdown.png)}其标志是(::)子控件选择器是用位置的引用来代表一个元素,这个元素可以是一个单一控件或是另一个包含子控件的复合控件。使用subcontrol-origin属性可以改变子控件的默认放置位置,如:QComboBox{margin-right:20px;}QComboBox::drop-down{subcontrol-origin:margin;}如上语句可以用来改变drop-down的margin。相对位置属性可以用来改变子控件相对于最初位置的偏移量,如当一个QCombox的drop-down按钮被按下时,我们可以用一个内部的小偏移量来表示被按下的效果,如下:QComboBox::d