如何在使用布局方法时使用QPropertyAnimation为位置更改设置动画?

时间:2017-12-27 18:51:38

标签: python qt pyqt pyqt5 qpropertyanimation

所以基本上我要做的是动画小部件移动,起始点是(0,0)或父窗口一侧的某个地方,然后终点是小部件实际位于父窗口。但我使用的是布局方法,QGridLayout是具体的,所以我不能像通常的理解那样改变几何形状。到目前为止,这是一个尝试过的。

    print ("POS: ", self.Play_label.pos())

    geometry_play = self.Play_label.geometry()
    print ("mapp: ", self.Play_label.mapToGlobal(QPoint(0,0)))

    print ("play geo: ", geometry_play)

    self.animation = QPropertyAnimation(self.Play_label, b"geometry")

    self.animation.setDuration(3000)
    self.animation.setStartValue(QRect(0,0,150,150))
    self.animation.setEndValue(geometry_play)
    #print ("Value: ", self.animation.currentValue())
    #self.animation.valueChanged.connect(self.Play_label.changeImageSize)
    #self.animation.setTargetObject(self.Play_label)
    self.animation.start()

但是我创建的标签的x和y坐标总是(0,0),这是因为我使用的是布局方法吗?即使我尝试使用.pos()方法打印出位置,它总是返回(0,0)。

有没有简单的方法来动画这个变化?我知道我可以将动画的第二个参数更改为几何以外的东西,但我无法弄清楚在我的情况下我会改变它。我们非常感谢任何帮助,现在我们已经试着解决这个问题。

0 个答案:

没有答案