PyQt5 QPropertyAnimation finished()如何连接

时间:2018-06-01 09:25:13

标签: python qt pyqt pyqt5

本质上,我试图在动画完成后关闭一个窗口。 在我看过的所有文档和示例中,它们都在:

  • C ++
  • 模糊的“方法定义”
  • 旧式插槽和连接器

如何在动画结束时访问“应该”调用的finished()?

self.anim = QtCore.QPropertyAnimation(window, b"windowOpacity"
self.anim.setStartValue(1)
self.anim.setEndValue(0)
self.anim.setDuration(3000)
#self.anim.finished.connect() does not exist
#QtCore.QObject.connect(stuff) is deprecated
#self.anim.finished(window.destroy) destroys window immediately

在我正在阅读的所有示例中,他们使用第一个注释掉的方法,但编译器抱怨'已完成'没有'connect()'方法

1 个答案:

答案 0 :(得分:0)

每次都是...... EVERY。时间。 我找了几个小时的答案,并在发布求助后立即找到答案。

注释掉方法#1是正确的,但是你不能在window.destroy之类的connect()方法中做一个特定的动作。

正确的方法:`

    self.anim.finished.connect(self.someMethod)
def someMethod(self):
    window.destroy
什么让我失望的是; IDE没有为finished.connect()提供代码完成建议(实际上与button.clicked.connect()相同)

这就是我认为过分依赖IDE的原因。希望这能帮助将来的某个人。