C++ 要设置动画的QPropertyImation中支持的哪些属性?
我正在学习Qt,并认为动画按钮的事情是重要的。我试图创建我的自定义QPushButton类,该类重新实现鼠标进入和离开事件,并使用qt动画框架 因此,如果我想设置其大小的动画,我可以使用“几何体”作为propertyName 但是当我想同时改变文本颜色和背景颜色时,我会感到困惑。。。我应该把什么作为C++ 要设置动画的QPropertyImation中支持的哪些属性?,c++,qt,animation,pyqt4,pyside,C++,Qt,Animation,Pyqt4,Pyside,我正在学习Qt,并认为动画按钮的事情是重要的。我试图创建我的自定义QPushButton类,该类重新实现鼠标进入和离开事件,并使用qt动画框架 因此,如果我想设置其大小的动画,我可以使用“几何体”作为propertyName 但是当我想同时改变文本颜色和背景颜色时,我会感到困惑。。。我应该把什么作为propertyName?一直在搜索任何地方,但没有找到任何关于我可以设置动画的属性以及它在propertyNameconstructor参数中如何命名的文档 预期答案是所有可能的参数,如QtCore
propertyName
?一直在搜索任何地方,但没有找到任何关于我可以设置动画的属性以及它在propertyName
constructor参数中如何命名的文档
预期答案是所有可能的参数,如QtCore.QPropertyAnimation(self,“geometry”)
(pyqt4/pyside)中的“geometry”
我使用PyQT4,但是我也可以使用PyStand和Qt4.8 C++,所以在这些库中的任何答案都可以(将全部学习)< /P> 编辑:
我发现使用“颜色”会改变整个按钮的颜色(背景色),但仍然不知道如何使文本可见并设置文本颜色的动画。因此,您无法使用
QPropertyAnimation
为它们设置动画
您可以在官方文档的相应部分找到QWidget
属性列表:
如果要动态更改某些任意属性,如文本颜色,可以启动QTimer
,并在连接到计时器超时
信号的插槽中执行必要的操作。
--upd-- <>在C++ QT中,不能动画化“颜色”属性,因为没有这样的属性。如果尝试执行此操作,控制台中将显示以下警告:
QPropertyAnimation: you're trying to animate a non-existing property color of your QObject
作为
QVariantAnimation
的子类,QPropertyAnimation
不支持所有QVariant
属性类型。将列出支持的类型
并非所有QVariant类型都受支持。以下是目前的工作清单
支持的QVariant类型:
IntUInt
双倍
浮动
QLine
QLineF
QPoint
QPointF
QSize
QSizeF
QRect
QRectF
四色 如果要为其他类型的特性设置动画,应为其注册插值函数:
QVariant cursorInterpolator(const QCursor &start, const QCursor &end, qreal progress)
{
...
return QCursor(...);
}
...
qRegisterAnimationInterpolator<QCursor>(cursorInterpolator);
QVariant游标插入器(常量QCursor&start,常量QCursor&end,qreal progress)
{
...
返回QCursor(…);
}
...
qRegisterAnimationInterpolator(光标Interpolator);
您可以为应用程序的Qt属性系统添加“颜色”。只需添加代码
Q_PROPERTY(QColor color READ color WRITE setColor)
在类小部件中,您希望在类中设置动画并添加这两个方法color()
和setColor()
。
不要忘记在settter中通过
update()
进行更新。是的,它不是Qt属性,但我认为在动画框架中它使用了不同类型的属性,因为即使光标是Qt属性,它也无法为“光标”设置动画。毕竟,我可以将哪些可能的值传递给propertyName
?
Q_PROPERTY(QColor color READ color WRITE setColor)