QPropertyAnimation не работает с дочерним виджетом - PullRequest
3 голосов
/ 05 августа 2011

Код ниже не анимирует кнопку, как ожидалось.Но это работает, если кнопка автономна и перестает работать, когда это дочерний виджет.Что я здесь не так делаю?

Я пытаюсь это сделать в Ubuntu.

class TestWindow(QtGui.QWidget):

    def __init__(self):
        QtGui.QWidget.__init__(self)

        self.button = QtGui.QPushButton("Ok")
        self.button.setParent(self)
        self.button.setGeometry(QtCore.QRect(0,0,50,50))
        self.button.clicked.connect(self.anim)

    def anim(self):

        animation = QtCore.QPropertyAnimation(self.button, "geometry")
        animation.setDuration(10000)
        animation.setStartValue(QtCore.QRect(0,0,0,0))
        animation.setEndValue(QtCore.QRect(0,0,200,200))
        animation.start()

if __name__ == '__main__':
        app = QtGui.QApplication(sys.argv)

        r = TestWindow()
        r.show()

        sys.exit(app.exec_())

1 Ответ

5 голосов
/ 05 августа 2011

Я только что попробовал это на Ubuntu 10.04 с PySide. Попробуйте сохранить ссылку на ваш анимационный объект, это решило проблему здесь:

def anim(self):

    animation = QtCore.QPropertyAnimation(self.button, "geometry")
    animation.setDuration(10000)
    animation.setStartValue(QtCore.QRect(0,0,0,0))
    animation.setEndValue(QtCore.QRect(0,0,200,200))
    animation.start()

    self.animation = animation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...