如何从QTableWidget提取数据转为二维数组并解决仅输出最后元素问题
解决QTableWidget数据转二维浮点数组的问题
你当前的代码每次循环都会用新值覆盖变量T,所以最后只会保留表格的最后一个元素,且完全没有构建二维数组的逻辑。以下是修改后的实现方案:
完整代码示例
def DoSomething(self): # 初始化空的二维数组 data_array = [] rows = self.ui.Level_N.rowCount() cols = self.ui.Level_N.columnCount() for i in range(rows): # 初始化当前行的存储列表 row_data = [] for j in range(cols): # 获取单元格文本并转换为浮点型 cell_text = self.ui.Level_N.item(i, j).text() try: # 尝试转换为浮点,处理有效数据 value = float(cell_text) row_data.append(value) except ValueError: # 处理非浮点数据的情况,这里用0.0作为默认值,可按需调整 row_data.append(0.0) # 将当前行数据加入二维数组 data_array.append(row_data) # 验证转换结果 print(data_array) # 调用你的目标函数,传入二维数组 # your_target_function(data_array)
关键说明
- 先初始化
data_array作为二维数组的容器,每一行数据先存入row_data子列表,再整体加入data_array - 加入
try-except块是为了避免单元格为空、或包含非数字文本时导致程序崩溃,你可以根据需求修改异常处理逻辑(比如跳过无效单元格、弹出提示等) - 提前获取总行数和总列数,避免循环中重复调用
rowCount()和columnCount(),小幅提升执行效率
内容的提问来源于stack exchange,提问作者gigi
相关产品推荐
相关产品推荐

