首先参考两篇博客:
Qt中的属性系统:https://blog.csdn.net/libaineu2004/article/details/88106976
https://blog.csdn.net/feiyangqingyun/article/details/121177993
总结:通过宏定义(Q_PROPERTY)定义的属性的是一般意义上的属性,使用了宏也可以设置为动态属性;此外也可以通过其他方法直接设置动态属性。
------------------------------------------------------------------------------------------------------------------------------------
样式表与属性的结合:
样式表的使用时会涉及到属性,这里的属性和qt部件的属性有什么关联呢?
**样式表有自己的一套属性,可以应用于部件上,与部件本身有无此属性无关。(两个体系)
但是却可以通过给部件添加动态属性的方式,将qt的动态属性与样式表进行联系:
qt中为了用户界面外观的动态变化,属性选择器可以与动态属性组合使用。动态属性在Qt4.2中引入,允许为编译时不存在的QObject属性分配属性值。即:如果为QObject实例设置一个urgent属性为true,该属性将跟随该实例,但不会为urgent属性包含一个Q_PROPERTY宏。
创建样式选择器依赖于动态属性,例如:urgent(动态属性),可以用一个非常动态的方式凸显用户界面。例如:
会匹配QLineEdit中的属性urgent=true的实例。从而设置color属性为红色。
**那么样式表能不能对部件的原有属性进行设置?答案是可以:
从 Qt4.3 开始,任何可设计的 Q_PROPERTY 都可以使用“qproperty-属性名称”语法来设置样 式表。如:
MyLabel{qproperty-pixmap:url(pixmap.png);}
MyGroupBox{qproperty-titleColor:rgb(100,200,100);}
QPushButton{qproperty-iconSize:20px 20px;}
------------------------------------------------------------------------------------------------------------------------------------------
样式表知识:
标签:qt,qproperty,urgent,样式表,动态,属性 From: https://www.cnblogs.com/ylww/p/17131859.html