import sys from PySide6.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout from params_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, 800) self.test_widget1 = MyWidget(self, "inputPoi[13]") self.test_widget2 = MyWidget(self, "tuning_parameters.mix_parameters[1].ch_n") self.test_widget3 = MyWidget(self, "tuning_parameters.mix_parameters[2].ch_n") self.test_widget4 = MyWidget(self, "tuning_parameters.mix_parameters[3].ch_n") self.test_widget5 = MyWidget(self, "tuning_parameters.mix_parameters[4].ch_n") # 创建 QLabel、QLineEdit 和 QPushButton 控件 self.label = QLabel("请输入内容:", self) self.input_line = QLineEdit(self) self.button = QPushButton("更新标签", self) # 设置按钮点击事件 self.button.clicked.connect(self.on_button_clicked) # 创建垂直布局并添加控件 layout = QVBoxLayout() layout.addWidget(self.test_widget1) layout.addWidget(self.test_widget2) layout.addWidget(self.test_widget3) layout.addWidget(self.test_widget4) layout.addWidget(self.test_widget5) layout.addWidget(self.label) layout.addWidget(self.input_line) layout.addWidget(self.button) # 设置窗口的布局 self.setLayout(layout) self.params_service = ParamsService("127.0.0.1", 12345) # self.params_service.signal_request_complete.connect(self.on_params_service) def on_params_service(self, res: Response): widget = res.widget print(res) # print(res.data) # widget.set_data(res.data) def on_button_clicked(self): # self.params_service.get_params( # widget=self.test_widget1, # param_names=[self.test_widget1.param_name], # callback=self.on_params_service # ) # self.params_service.get_params( # widget=self.test_widget2, # param_names=[self.test_widget2.param_name], # callback=self.on_params_service # ) # self.params_service.get_params( # widget=self.test_widget3, # param_names=[self.test_widget3.param_name], # callback=self.on_params_service # ) # self.params_service.get_params( # widget=self.test_widget4, # param_names=[self.test_widget4.param_name], # callback=self.on_params_service # ) # self.params_service.get_params( # widget=self.test_widget5, # param_names=[self.test_widget5.param_name], # callback=self.on_params_service # ) TEST_PARAM_NAME = "OrderOne_Flag" self.params_service.get_params( widget=None, params=[TEST_PARAM_NAME], callback=self.on_params_service ) if __name__ == "__main__": app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec())