使用QPropertyAnimation制作位移动画
时间: 2024-04-10 14:27:33 浏览: 92
您可以使用QPropertyAnimation类来创建位移动画。以下是一个简单的示例代码,演示了如何使用QPropertyAnimation在QWidget中创建位移动画:
```python
from PyQt5.QtCore import QPropertyAnimation, QPoint
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 250, 250)
self.button = QPushButton("Move", self)
self.button.setGeometry(10, 10, 100, 30)
self.button.clicked.connect(self.start_animation)
def start_animation(self):
# 创建QPropertyAnimation对象,并指定要进行动画的目标对象和属性
animation = QPropertyAnimation(self.button, b"pos")
# 设置动画的起始值和结束值
start_pos = self.button.pos()
end_pos = QPoint(150, 150)
animation.setStartValue(start_pos)
animation.setEndValue(end_pos)
# 设置动画的持续时间
animation.setDuration(1000) # 1秒
# 开始动画
animation.start()
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
在这个示例中,我们创建了一个自定义的QWidget,并在其上放置了一个QPushButton按钮。当按钮被点击时,我们创建了一个QPropertyAnimation对象,并将其目标对象设置为按钮的位置属性(pos)。***
阅读全文