Проблема анимации

А хочу сделать анимированные Radio Button, но не умею, я спросил ChatGpt:

class ModernRadioButton(QWidget):
    def __init__(self, text, value, parent=None):
        super().__init__(parent)
        self.value = value
        self.selected = False
        self.animating = False
        self.layout = QVBoxLayout(self)
        self.layout.setContentsMargins(0, 0, 0, 0)
        self.layout.setSpacing(0)
        self.setStyleSheet("""
            ModernRadioButton {
                background-color: #f2f2f2;
                border: none;
                padding: 10px;
            }

            QRadioButton {
                font: bold 12px;
                color: #333333;
            }

            QRadioButton::indicator {
                width: 20px;
                height: 20px;
            }

            QRadioButton::indicator:unchecked {
                border: 2px solid #999999;
                border-radius: 10px;
            }

            QRadioButton::indicator:checked {
                border: 2px solid #3366CC;
                background-color: #3366CC;
                border-radius: 10px;
            }
        """)

        self.radio_button = QRadioButton(text)
        self.radio_button.setChecked(False)
        self.radio_button.toggled.connect(self.on_toggled)
        self.layout.addWidget(self.radio_button)

        self.animation = QPropertyAnimation(self.radio_button, b"geometry")
        self.animation.setDuration(200)
        self.animation.setStartValue(QRect(0, 0, 0, 0))

    def on_toggled(self):
        self.selected = self.radio_button.isChecked()

        if self.animating:
            self.animation.stop()

        if self.selected:
            self.animation.setEndValue(QRect(0, 0, self.radio_button.width(), self.radio_button.height()))
        else:
            self.animation.setEndValue(QRect(0, 0, 0, 0))

        self.animation.start()
        self.animating = True

Но это не работает. Заранее спасибо


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