57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
|
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())
|