所有的数据处理都应该通过异步进行

- # 自定义信号源
- class QCustomSignal(QObject):
- signal_update_table = Signal(list)
- signal_get_token = Signal(str)
- signal_send_mq = Signal()

- @Slot()
- def handle_search(self):
- def thread_function():
- user_info = get_user_info(token=self.token, username=self.lineEdit.text())
- # 发出信号
- custom_signal.signal_update_table.emit(user_info)
-
- # 异步访问API并发出渲染信号
- Thread(target=thread_function).start()
-
- # 绑定信号的处理函数
- custom_signal.signal_update_table.connect(self.handle_search_render)

- @Slot(list)
- def handle_search_render(self, user_info):
- self.user_info = user_info
- # QTableWidget句柄
- widget: QTableWidget = self.tableWidget
- # 设置行数
- widget.setRowCount(len(user_info))
- # 设置列数
- widget.setColumnCount(5)
- # 设置表头
- widget.setHorizontalHeaderLabels(["姓名", "组织", "手机号码", "操作", "检测"])
-
- # 设置表头宽度自适应
- widget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
- widget.horizontalHeader().setSectionResizeMode(0, QHeaderView.Fixed)
- widget.horizontalHeader().setSectionResizeMode(2, QHeaderView.Fixed)
- widget.horizontalHeader().setSectionResizeMode(3, QHeaderView.Fixed)
- widget.horizontalHeader().setSectionResizeMode(4, QHeaderView.Fixed)