param_service/test/param_service_test.py
JingweiCui b300c2bf9d [refactor] 调整文件目录
- param_service_test.py移动到test目录中
2025-04-01 13:35:56 +08:00

93 lines
2.8 KiB
Python

import sys
from PySide6.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout
from param_service import ParamsService, Response
class MyComponent:
def __init__(self, parent=None):
pass
def set_data(self, data):
pass
class MyWidget(QWidget, MyComponent):
def __init__(self, parent=None, param_name=None):
super().__init__(parent=parent)
layout = QVBoxLayout()
self.param_name = param_name
self.label1 = QLabel('param_value', self)
self.label2 = QLabel(f'param_name: {self.param_name}', self)
layout.addWidget(self.label1)
layout.addWidget(self.label2)
self.setLayout(layout)
def set_data(self, data):
self.label1.setText(str(data[self.param_name]))
class MyWindow(QWidget):
def __init__(self):
super().__init__()
# 设置窗口标题和尺寸
self.setWindowTitle("PySide6 Example")
self.setFixedSize(300, 180)
# 创建 QLabel、QLineEdit 和 QPushButton 控件
self.label = QLabel("请输入参数名称", self)
self.input_line = QLineEdit(self)
self.label_value = QLabel("数值", self)
self.input_line_value = QLineEdit(self)
self.button_get = QPushButton("获取参数", self)
self.button_set = QPushButton("设置参数", self)
# 设置按钮点击事件
self.button_get.clicked.connect(self.on_button_clicked)
self.button_set.clicked.connect(self.on_button_set_clicked)
# 创建垂直布局并添加控件
layout = QVBoxLayout()
layout.addWidget(self.label)
layout.addWidget(self.input_line)
layout.addWidget(self.label_value)
layout.addWidget(self.input_line_value)
layout.addWidget(self.button_get)
layout.addWidget(self.button_set)
# 设置窗口的布局
self.setLayout(layout)
self.params_service = ParamsService("127.0.0.1", 12345)
def on_params_service(self, res: Response):
print(res.data)
self.input_line_value.setText(str(res.data[self.request_name]))
def on_button_clicked(self):
self.request_name = self.input_line.text()
self.params_service.get_params(
widget=None,
params=[self.request_name],
callback=self.on_params_service
)
def on_button_set_clicked(self):
print("设置参数")
self.request_name = self.input_line.text()
self.request_value = self.input_line_value.text()
self.params_service.set_params(
widget=None,
params=[self.request_name],
callback=self.on_params_service
)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec())