rnc_tuning/br_widget_var_details.py

57 lines
1.7 KiB
Python
Raw Permalink Normal View History

2025-02-14 11:11:41 +08:00
from PySide6.QtWidgets import QWidget
from PySide6.QtCore import Slot, Signal, SignalInstance
from ui_var_details import Ui_Widget
from param_data import ParamDataVar
from br_com_message import BrComMessage
class BrWidgetVarDetails(QWidget, Ui_Widget):
signal_read: SignalInstance = Signal(BrComMessage)
signal_write: SignalInstance = Signal(BrComMessage)
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.param_data: ParamDataVar = None
def update_param_info(self, p_data: ParamDataVar):
self.param_data = p_data
self.label_addr.setText(str(p_data.addr))
self.label_name.setText(str(p_data.name))
self.label_details.setText(str(p_data.details))
self.lineEdit_var.setText(str(p_data.val()))
@Slot()
def on_pushButton_read_clicked(self):
print('[read] button clicked!')
# 生成读取命令,然后触发读取事件
m_msg = BrComMessage(
BrComMessage.OP_READ,
self.param_data.addr)
self.signal_read.emit(m_msg)
@Slot()
def on_pushButton_write_clicked(self):
print('[write] button clicked!')
# 获取数值
_write_val = float(self.lineEdit_var.text())
m_msg = BrComMessage(
BrComMessage.OP_WRITE,
self.param_data.addr,
_write_val
)
self.signal_write.emit(m_msg)
if __name__ == "__main__":
from PySide6.QtWidgets import QApplication
import sys
app = QApplication()
widget = BrWidgetVarDetails()
param_data = ParamDataVar(10, 'name', 'NULL', 0)
widget.update_param_info(param_data)
widget.show()
sys.exit(app.exec())