PyQt5 QPropertyAnimation finished() 如何连接
Posted
技术标签:
【中文标题】PyQt5 QPropertyAnimation finished() 如何连接【英文标题】:PyQt5 QPropertyAnimation finished() how to connect 【发布时间】:2018-06-01 09:25:13 【问题描述】:本质上,我试图在动画完成后关闭一个窗口。 在我看过的所有文档和示例中,它们都位于:
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
在我阅读的所有示例中,它们使用第一个注释掉的方法,但编译器抱怨“完成”没有“连接()”方法
【问题讨论】:
【参考方案1】:每次都... 每一个。时间。 我找了好几个小时的答案,在发帖寻求帮助后,我立即找到了答案。
注释掉的方法 #1 是正确的,但是您不能在 connect() 方法中执行特定操作,例如 window.destroy 或其他东西。
正确方法:`
self.anim.finished.connect(self.someMethod)
def someMethod(self):
window.destroy
让我失望的是; IDE 没有为 finished.connect() 提供代码完成建议(实际上与 button.clicked.connect() 相同)
我想这就是我过度依赖 IDE 的结果。希望这对将来的某人有所帮助。
【讨论】:
以上是关于PyQt5 QPropertyAnimation finished() 如何连接的主要内容,如果未能解决你的问题,请参考以下文章
QPainter 在使用 QPropertyAnimation 时崩溃
运行 QPropertyAnimation 后 QWiget 的奇怪行为
QPropertyAnimation 支持哪些属性进行动画处理?