用Q_PROPERTY增加Qt现有类的属性和方法

改变现有类,比如你要用到一个类的pos、size等。然后Qt提供的这个类没有提供对应方法,我们改怎么办呢?

QT的帮助文档中这样写道:


应用实例:

用Qt的Graphics体系的朋友们可能会发现这个问题,Qt的QGraphicsItem和QGraphicsObject两个类的动画属性中,只有opacity这个动画,却没有geometry动画属性。而geometry动画效果在QPropertyAnimation中是很常用的动画效果。我们通过Q_PROPERTY这个宏来增加这个geometry动画效果。我们看到Qt的源码中这样定义了opacity:


如果我们直接如下这么使用geometry这个动画效果:


编译器会报错告诉我们没有定义geometry这个动画效果,那我们在我们的类中定义宏:




这样,我们的动画效果中就有了geometry哦~

展开阅读全文
©️2020 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值