Как анимировать изменение позиции с помощью 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 ответов

Другие вопросы по тегам