Проблема анимации
А хочу сделать анимированные 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
Но это не работает. Заранее спасибо