2026-07-14 11:14:13 +03:00

53 lines
1.8 KiB
Python

from PySide6.QtWidgets import (
QWidget, QVBoxLayout, QGroupBox,
QRadioButton, QButtonGroup
)
from PySide6.QtCore import Signal
class LightVersionWidget(QWidget):
"""Виджет для выбора версии подсветки"""
valueChanged = Signal()
def __init__(self, title: str = "Подсветка", default: int = 2, options=None):
super().__init__()
if options is None:
options = {1: "Версия 1 (старая)(только на самой первой фишке)", 2: "Версия 2 (новая, по умолчанию)"}
self.options = options
self.init_ui(title, default)
def init_ui(self, title: str, default: int):
layout = QVBoxLayout()
layout.setContentsMargins(0, 0, 0, 0)
group_box = QGroupBox(title)
group_layout = QVBoxLayout()
self.button_group = QButtonGroup(self)
self.radio_buttons = {}
for value, label in self.options.items():
radio = QRadioButton(label)
if value == default:
radio.setChecked(True)
self.button_group.addButton(radio, value)
self.radio_buttons[value] = radio
group_layout.addWidget(radio)
radio.toggled.connect(self.on_value_changed)
group_box.setLayout(group_layout)
layout.addWidget(group_box)
self.setLayout(layout)
def on_value_changed(self):
"""Обработчик изменения значения"""
self.valueChanged.emit()
def get_value(self) -> int:
return self.button_group.checkedId()
def set_value(self, value: int):
if value in self.radio_buttons:
self.radio_buttons[value].setChecked(True)