Qt 关于setStyleSheet,有时间再测试下各种情况
来源:互联网 发布:网络暴力论文与人文 编辑:程序博客网 时间:2024/06/06 06:38
Qt 有好用的Qss系统.
但是这和CSS还是有很多不同.
:
来看看一般情况下的选择器
类型选择器:QPushButton 继承关联 type
匹配所有QPushButton的实例和其派生类(含派生类的派生类...)的实例。
类选择器:.QPushButton 继承关联+层别区分 class 等价于*.QPushButton
匹配所有QPushButton的实例,但不包含其子类,这相当于:*[class~="QPushButton"]
~=的意思是测试一个QStringList类型的属性是否包含给定的QString
To match a subset of "class" values, each value must be preceded by a ".".
属性选择器:QPushButton[flat="false"]继承关联+属性区分
匹配所有QPushButton属性flat为false的实例,
属性分为两种,静态的和动态的,静态属性是通过Q_PROPERTY()来指定的,动态属性通过使用setProperty来指定,如:QLineEdit *nameEdit = new QLineEdit(this); //静态
nameEdit->setProperty("mandatoryField", true); //动态
ID选择器:QPushButton#okButton继承关联+手动区分
对应Qt里面的object name设置,使用这条CSS之前要先设置对应控件的object name为okButton
如:Ok->setObjectName(tr("okButton"));
E#myid : Matches any E element with ID equal to "myid".
通用类型选择器:*控件关联
代表所有已有的类,会对所有控件有效果。
后代选择器:QDialog QPushButton控件关联+层别不区分
匹配所有为QDialog后裔(包含儿子 和 儿子的儿子的递归)为QPushButton的实例
意思是所有QDialog的子控件的子控件(可递归),只要是QPushButton 就选中.
子选择器:QDialog > QPushButton控件关联+层别区分
匹配所有的QDialog直接控件QPushButton的实例,不包含儿子的儿子的递归。
一些等同情况.
*[lang=fr] and [lang=fr] are equivalent.
*.warning and .warning are equivalent.
*#myid and #myid are equivalent.
但是这和CSS还是有很多不同.
:
QSS语法主要针对的是C++类.基类和派生类之间的关系.当然也包含一些CSS的父子关系
来看看一般情况下的选择器
我在此把选择器分为控件关联和继承关联. 因为这两种子类是不同的,所以我把继承关联的子类写成派生类.
类型选择器:QPushButton 继承关联 type
匹配所有QPushButton的实例和其派生类(含派生类的派生类...)的实例。
类选择器:.QPushButton 继承关联+层别区分 class 等价于*.QPushButton
匹配所有QPushButton的实例,但不包含其子类,这相当于:*[class~="QPushButton"]
~=的意思是测试一个QStringList类型的属性是否包含给定的QString
To match a subset of "class" values, each value must be preceded by a ".".
属性选择器:QPushButton[flat="false"]继承关联+属性区分
匹配所有QPushButton属性flat为false的实例,
属性分为两种,静态的和动态的,静态属性是通过Q_PROPERTY()来指定的,动态属性通过使用setProperty来指定,如:
nameEdit->setProperty("mandatoryField", true); //动态
如果在设置了qss后Qt属性改变了,需要重新设置qss来使其生效,可以使用先unset再set qss。
ID选择器:QPushButton#okButton继承关联+手动区分
对应Qt里面的object name设置,使用这条CSS之前要先设置对应控件的object name为okButton
如:Ok->setObjectName(tr("okButton"));
E#myid : Matches any E element with ID equal to "myid".
通用类型选择器:*控件关联
代表所有已有的类,会对所有控件有效果。
后代选择器:QDialog QPushButton控件关联+层别不区分
匹配所有为QDialog后裔(包含儿子 和 儿子的儿子的递归)为QPushButton的实例
意思是所有QDialog的子控件的子控件(可递归),只要是QPushButton 就选中.
子选择器:QDialog > QPushButton控件关联+层别区分
匹配所有的QDialog直接控件QPushButton的实例,不包含儿子的儿子的递归。
一些等同情况.
*[lang=fr] and [lang=fr] are equivalent.
*#myid and #myid are equivalent.
最后:重要的一点.setStyleSheet("...");其实等价于 setStyleSheet("* {...}"); 要小心为上了.
理解了上面这些,Qss其他部分应该比较好理解了.以后再写.
2012-12-06
理解了上面这些,Qss其他部分应该比较好理解了.以后再写.
2012-12-06
- Qt 关于setStyleSheet,有时间再测试下各种情况
- Qt 样式表 setStyleSheet
- Qt 样式表 --- setStyleSheet
- Qt 样式表 setStyleSheet
- Qt 之 setStyleSheet
- QT setStyleSheet使用
- Qt setStyleSheet的神奇
- Qt利用setStyleSheet设置样式
- Qt利用setStyleSheet设置样式
- qt 测试精确时间
- 使用QT在windows下高精度测试程序运行时间
- 关于python下各种时间格式的转换
- 各种情况下的编译
- RMAN 各种情况下恢复
- 各种情况下的console
- 关于div嵌套margin-top影响父div的解决办法及各种情况测试
- setstylesheet
- Linux下各种时间
- Oracle v$sqlarea
- JAVA自学-路线图明细
- js面向对象编程代码
- 柳永 天涯 青砚1989
- 匈牙利算法求二分图的最优匹配(java)
- Qt 关于setStyleSheet,有时间再测试下各种情况
- 【ibatis】ibatis动态操作sql数据
- Eclipse中查看JDK类库的源代码
- Eclipse下的Grails开发环境搭建详解
- highcharts 高级应用—动态柱状图的实现
- 苏轼 天涯 青砚1989
- NAND FLASH读写原理
- 解决自定义控件大小问题
- Uncaught SyntaxError: Illegal return statement