表格实时回填:set_result 如何驱动结果预览
目标:结果一回来,表格立刻刷出来
引擎识别完,主线程收到结果,要把"批号 + 元素 + 值"这类结构化数据实时填进右侧结果预览表。
核心就是 set_result:把 dict 数据逐行塞进 QTableWidget。
代码
def set_result(self, result, batch_count, element_count):
# result: {"批号": {"元素": 值}}
self._result = result # 先留着,之后导出要用
self.table.clearContents()
self.table.setRowCount(0)
for batch, elements in result.items():
for element, value in elements.items():
r = self.table.rowCount()
self.table.insertRow(r)
self.table.setItem(r, 0, QTableWidgetItem(str(batch)))
self.table.setItem(r, 1, QTableWidgetItem(element))
self.table.setItem(r, 2, QTableWidgetItem(str(value)))
self.summary.setText(f"共 {batch_count} 个批号,{element_count} 个元素")
关键点
第一性原理:表格是视图,_result 才是数据源
QTableWidget 只是展示。真正要用的数据得存一份在内存(self._result),表格每次重新渲染。别指望从表格控件里读数据,那样又慢又脆。
谁调用它
主线程 _handle_result 收到引擎结果,就调 direct_page.set_result(…) 把数据喂给表格视图。表格只是最后一个落点。
一句话:数据存在模型里,表格只是刷新出来给看。set_result 就是"把模型数据渲染成表格视图"的那个口子。
网硕互联帮助中心

评论前必须登录!
注册