我有一个想要淡出的按钮小部件 ( self.button1
)
def button_slot(self):
fade_effect = QtGui.QGraphicsOpacityEffect()
self.button1.setGraphicsEffect(fade_effect)
hideAnimation = QtCore.QPropertyAnimation(fade_effect, "opacity")
hideAnimation.setDuration(5000)
hideAnimation.setStartValue(1.0)
hideAnimation.setEndValue(0.0)
hideAnimation.start(QtCore.QPropertyAnimation.DeleteWhenStopped)
self.hideAnimation = hideAnimation
代码在 PyQt 中,但与原始 Qt 相同。
出于某种原因,当我在测试文件中单独尝试代码时,它运行良好。但是,当尝试将它集成到我的代码中时,似乎淡出动画在后台运行,但在 GUI 本身中没有更新:
- 按钮卡在“点击”状态。
- 如果我最小化并放大窗口,按钮的不透明度就在它应该在的位置(例如,如果持续时间从 1.0 到 0.0 为 5000 毫秒,则在 2500 毫秒后放大窗口将显示 0.5 不透明度)。
- 该按钮是可点击的,即使它看起来“卡住”。
为什么会发生这种情况?如何强制 GUI 在每次事件迭代时自行更新?