55 lines
2.0 KiB
Python
55 lines
2.0 KiB
Python
from PySide6.QtWidgets import (
|
|
QWidget, QVBoxLayout, QGroupBox,
|
|
QRadioButton, QButtonGroup
|
|
)
|
|
from PySide6.QtCore import Signal
|
|
|
|
|
|
class HopperSensorWidget(QWidget):
|
|
"""Виджет для выбора типа датчика хоппера"""
|
|
|
|
valueChanged = Signal()
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.init_ui()
|
|
|
|
def init_ui(self):
|
|
layout = QVBoxLayout()
|
|
layout.setContentsMargins(0, 0, 0, 0)
|
|
|
|
group_box = QGroupBox("Тип датчика хоппера")
|
|
group_layout = QVBoxLayout()
|
|
|
|
self.button_group = QButtonGroup(self)
|
|
|
|
self.radio_normally_open = QRadioButton("Нормально разомкнутый (по умолчанию)(китайский)")
|
|
self.radio_normally_open.setChecked(True)
|
|
self.button_group.addButton(self.radio_normally_open, 1)
|
|
|
|
self.radio_normally_closed = QRadioButton("Нормально замкнутый (русский)")
|
|
self.button_group.addButton(self.radio_normally_closed, 2)
|
|
|
|
group_layout.addWidget(self.radio_normally_open)
|
|
group_layout.addWidget(self.radio_normally_closed)
|
|
|
|
group_box.setLayout(group_layout)
|
|
layout.addWidget(group_box)
|
|
|
|
self.button_group.buttonToggled.connect(self.on_value_changed)
|
|
self.setLayout(layout)
|
|
|
|
def on_value_changed(self):
|
|
"""Обработчик изменения значения"""
|
|
self.valueChanged.emit()
|
|
|
|
def get_value(self) -> str:
|
|
"""Возвращает '0' для нормально разомкнутого, '1' для нормально замкнутого"""
|
|
return '0' if self.button_group.checkedId() == 1 else '1'
|
|
|
|
def set_value(self, value: str):
|
|
"""Устанавливает значение из строки '0' или '1'"""
|
|
if value == '0':
|
|
self.radio_normally_open.setChecked(True)
|
|
else:
|
|
self.radio_normally_closed.setChecked(True) |