Qt4与PySide:如何为一个控件创建动画循环?

0 投票
1 回答
778 浏览
提问于 2025-04-18 05:11

我正在使用一个 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

撰写回答