要设置动画的QPropertyAnimation中支持什么属性
What property supported in QPropertyAnimation to be animated?
我正在学习Qt,并认为动画按钮很重要。我正在尝试创建我的自定义QPushButton类,该类重新实现鼠标输入&离开event并使用qt动画框架。Q属性动画
QPropertyAnimation(QObject * target, const QByteArray & propertyName, QObject * parent = 0)
因此,如果我想设置其大小的动画,我可以使用"几何体"作为propertyName但当我想同时更改文本颜色和背景色时,我会感到困惑。。。我应该把什么作为propertyName
?一直在搜索,但没有找到任何关于我可以动画化什么属性以及如何在propertyName
构造函数参数中命名它的文档。
预期答案是所有可能的参数,如QtCore.QPropertyAnimation(self,"geometry")
(pyqt4/pyside)中的"几何体">
我使用PyQt4,但我可以使用PySide&Qt4.8 C++也是如此,所以在这些库中的任何一个库中的答案都可以(将学习所有库)
编辑:
我发现这个使用"颜色",它改变了整个按钮的颜色(背景色),仍然不知道如何使文本可见&设置文本颜色的动画
文本颜色和背景颜色不是Qt属性。因此,无法使用QPropertyAnimation
设置它们的动画。
您可以在官方文档的相应部分找到QWidget
属性列表:http://doc.qt.io/qt-4.8/qwidget.html
如果您想动态更改一些任意属性,如文本颜色,可以启动QTimer
,并在连接到计时器timeout
信号的插槽中执行必要的操作。
--更新--
在C++Qt中,您不能设置"color"属性的动画,因为没有这样的属性。如果你尝试这样做,你会在控制台中收到以下警告:
QPropertyAnimation: you're trying to animate a non-existing property color of your QObject
作为
QVariantAnimation
的子类,QPropertyAnimation
不支持所有QVariant
属性类型。文档中列出了支持的类型:并非所有QVariant类型都受支持。以下是当前支持的QVariant类型:
Int
UInt
Double
Float
QLine
QLineF
QPoint
QPointF
QSize
QSizeF
1QRect
QRectF
2QColor
如果你想为其他类型的属性设置动画,你应该为它注册一个插值函数:
QVariant cursorInterpolator(const QCursor &start, const QCursor &end, qreal progress)
{
...
return QCursor(...);
}
...
qRegisterAnimationInterpolator<QCursor>(cursorInterpolator);
您可以为应用程序在Qt属性系统中添加"color"。只需添加代码
Q_PROPERTY(QColor color READ color WRITE setColor)
在类小部件中,您要设置动画并在类中添加这两个方法color()
和setColor()
。别忘了在setter中通过update()
进行更新。
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 可以在 macOS 上启用的最低支持的 SSE 标志是什么?
- 当我在支持 avx2 的机器上编译并在另一台仅支持 avx 的机器上运行二进制文件时会发生什么?
- 什么是编程语言支持定义您自己的自定义运算符?
- 使用共享库版本支持不同 ABI 的最佳实践是什么?
- C++不支持非成员虚拟功能的原因是什么?
- 在Apple llvm 4.1上使用libc++与libstc++时,c++11支持的确切区别是什么
- 要设置动画的QPropertyAnimation中支持什么属性
- 最低合理支持的GCC版本是什么
- 什么是支持优先级、更新、推送和弹出的最佳数据结构
- c++支持原生无符号整数,而java不支持的优点是什么?
- 有什么方法可以解决 c++ 不支持运行时模板的事实吗?
- 支持c++ 11所需的libstdc++的最低合理版本是什么?
- 页面文件支持的内存映射文件与堆 -- 有什么区别?
- 我应该使用什么数据结构来支持插入、删除和随机选择
- ANSI C 89和c++支持的C有什么区别?
- INetworkConnectionEvents支持什么
- 我如何知道编译器支持什么标准格式
- wstring支持什么区域设置
- QMediaPlayer支持什么音频格式