用Q_PROPERTY增加Qt现有类的属性和方法
2016-09-22 18:17
260 查看
改变现有类,比如你要用到一个类的pos、size等。然后Qt提供的这个类没有提供对应方法,我们改怎么办呢?
QT的帮助文档中这样写道:
应用实例:
用Qt的Graphics体系的朋友们可能会发现这个问题,Qt的QGraphicsItem和QGraphicsObject两个类的动画属性中,只有opacity这个动画,却没有geometry动画属性。而geometry动画效果在QPropertyAnimation中是很常用的动画效果。我们通过Q_PROPERTY这个宏来增加这个geometry动画效果。我们看到Qt的源码中这样定义了opacity:
如果我们直接如下这么使用geometry这个动画效果:
编译器会报错告诉我们没有定义geometry这个动画效果,那我们在我们的类中定义宏:
这样,我们的动画效果中就有了geometry哦~
QT的帮助文档中这样写道:
应用实例:
用Qt的Graphics体系的朋友们可能会发现这个问题,Qt的QGraphicsItem和QGraphicsObject两个类的动画属性中,只有opacity这个动画,却没有geometry动画属性。而geometry动画效果在QPropertyAnimation中是很常用的动画效果。我们通过Q_PROPERTY这个宏来增加这个geometry动画效果。我们看到Qt的源码中这样定义了opacity:
如果我们直接如下这么使用geometry这个动画效果:
编译器会报错告诉我们没有定义geometry这个动画效果,那我们在我们的类中定义宏:
这样,我们的动画效果中就有了geometry哦~
相关文章推荐
- js defineSetter -给js的 "class"自动增加一个set的属性(方法)
- ASP.NET 2.0中新增加了2个很实用的属性和方法
- Ext为类增加属性和方法
- ECSHOP后台商品列表中增加商品属性的显示方法 .
- Objective-C-类(static)方法、实例方法、overwrite(覆写)、属性(property)
- android 增加Add-on属性支持的方法
- XSL对于VBScript、JScript增加的方法、属性
- Qt属性系统(Qt's Property System)及在Pyqt中的应用
- Property设置属性的7种方法
- chapter9: python 类的方法,属性,迭代器(new[old]-type class,[un]bound method,super,protocol,property,iterators)
- 跟我学XSL(五)-多个XSL对于VBScript、JScript增加的方法、属性
- Qt里的属性(property)(转贴)
- [VB.NET]VB窗体可以增加自定义属性或方法吗?
- ECSHOP后台商品列表中增加商品属性的显示方法
- Qt属性setProperty & property
- js defineSetter -给js的 "class"自动增加一个set的属性(方法)
- Autopostback提示“该对象不支持此属性或方法”(Object doesn't support this property or method)
- ObjectContext的ApplyPropertyChanges()方法不能更新导航属性的解决办法
- Qt属性setProperty & property [转载]
- Objective-C 的OOP(下)-类(static)方法、实例方法、overwrite(覆写)、属性(property)