Qt4与PySide:如何为一个控件创建动画循环?
我正在使用一个 QWidget
来绘制重复的形状,这些形状会有不同的颜色渐变,我希望这些颜色能够随着时间变化。在这个小部件中,我完全依赖 QPainter
的绘图功能来绘制和创建这些形状。
请问在 Qt4 中,怎样才能把一个特定的小部件放入动画循环中,这样 paintEvent()
就能定期被触发,最好是可以设置帧率或时间间隔?(就像一些工具,比如 Processing,处理他们的舞台那样)
另外,你会推荐使用其他类型的小部件来完成这样的任务吗?
1 个回答
0
在reddit上,用户们给了我很好的建议:
正如那里提到的,QTimer
可以很好地工作。在你的控件类中,你可以这样使用它:
timer = QTimer(self)
timer.setInterval(20) # interval in ms
self.connect(timer, SIGNAL("timeout()"), self.update)
timer.start()
相关的导入内容是
from PySide.QtCore import QTimer, SIGNAL