Как инвертировать анимацию находящуюся внутри группы?

У меня есть две QVariantAnimation засунутые в группу QSequentialAnimationGroup и я пытаюсь инвертировать одну из них. Я пытался это сделать так

    self.animation_1 = QtCore.QVariantAnimation()
    self.animation_2 = QtCore.QVariantAnimation()

    self.animation_1.setDirection(QtCore.QVariantAnimation.Backward)
    self.animation_2.setDirection(QtCore.QVariantAnimation.Forward)

    self.group = QtCore.QSequentialAnimationGroup(self)
    self.group.addAnimation(self.animation_1)
    self.group.addAnimation(self.animation_2)

Но не сработало. Я пытался так

    self.group.setDirection(QtCore.QVariantAnimation.Backward)

Но инвертируется вся анимация. а мне нужно только инвертировать одну из них . Я пытался сделать это оброщаясь к индексу

    self.group.animationAt(0).setDirection(QtCore.QVariantAnimation.Backward)

Ноль реакций. Я также пытался сделать это так

    self.group.animationAt(self.group.indexOfAnimation(animation_1)).setDirection(QtCore.QVariantAnimation.Backward)

Все равно не помогло.

Как это сделать?

Мой код

import sys

from PyQt5.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
    QRect, QSize, QUrl, Qt)
from PyQt5 import QtWidgets
from PyQt5 import QtGui
from PyQt5 import QtCore
from PyQt5.QtCore import QPropertyAnimation, QPoint

from PyQt5.QtWidgets import QGraphicsEffect, QApplication, QWidget, QMainWindow, QVBoxLayout, QLabel
from PyQt5.QtQml import QQmlApplicationEngine



class Main(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        #------block------
        block = QtWidgets.QWidget(self)
        block.setObjectName(u"block")
        block.setMinimumSize(QSize(300, 300))
        #------CONTENT------    
        self.block_but = QtWidgets.QWidget(block)
        self.block_but.setObjectName(u"block_but")
        self.block_but.setGeometry(QRect(110, 20, 111, 111))
        move_blur_button_lay = QtWidgets.QVBoxLayout(self.block_but)
        move_blur_button_lay.setObjectName(u"move_blur_button_lay")
        self.menu_arr = []

        radio = QtWidgets.QRadioButton(self.block_but)
        radio.setObjectName("mv_radio_but")
        radio.toggled.connect(self.menu_animation)
        # ---ADD---
        move_blur_button_lay.addWidget(radio)
        for x in range(2):
            # menu
            menu = QtWidgets.QWidget(block)
            menu.resize(50, 60)
            menu._expand = False
            # ---ADD---
            self.menu_arr.append(menu)
        self.menu_arr[0].setStyleSheet('''background:#ff0''')

        self.animation= []
        for i in range(2):
            menuAnimation = QtCore.QVariantAnimation()
            menuAnimation.setDuration(500)
            menuAnimation.setEasingCurve(QtCore.QEasingCurve.OutQuart)
            menuAnimation.setStartValue(QPoint(-20, 10))
            menuAnimation.setEndValue(QPoint(0, 10))
            self.animation.append(menuAnimation)
        self.group = QtCore.QSequentialAnimationGroup(self)
    def menu_animation(self):   
        for c in range(2):
            pos1 = QPoint(0 , 0)
            pos2 =QPoint(100 , 0)
            self.animation[c].setStartValue(pos1)
            self.animation[c].setEndValue(pos2)
            self.animation[c].setDirection(QtCore.QAbstractAnimation.Backward)
            self.animation[c].valueChanged.connect(lambda value, val=c: self.fun(value, val))
        self.animation[0].setDirection(QtCore.QVariantAnimation.Backward)
        self.animation[1].setDirection(QtCore.QVariantAnimation.Forward)        
        self.group.addAnimation(self.animation[0])
        self.group.addAnimation(self.animation[1])      
        self.group.start()      
    def fun(self,value,val=''):
        self.menu_arr[val].move(value.x(), 0)

StyleSheet = """
QWidget QWidget,
QWidget QWidget QWidget QWidget,
QWidget QWidget QWidget QWidget QWidget QWidget,
QWidget QWidget QWidget QWidget QWidget QWidget QWidget QWidget,
QWidget QWidget QWidget QWidget QWidget QWidget QWidget QWidget QWidget QWidget{
background:#000;
color:#fff;
}
QWidget,
QWidget QWidget QWidget,
QWidget QWidget QWidget QWidget QWidget,
QWidget QWidget QWidget QWidget QWidget QWidget QWidget,
QWidget QWidget QWidget QWidget QWidget QWidget QWidget QWidget QWidget{
background:#fff;
color:#000;
}
#click_me{
background:#000;
color:#fff;
}
"""

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    app.setStyleSheet(StyleSheet)
    w = Main()
    w.resize(640, 570) #Size window
    w.show()
    sys.exit(app.exec_())

Ответы (0 шт):