PySimpleGUI表格仅显示一行问题求助
问题排查与修正方案
核心问题
代码中sg.Table的headings参数传入了二维列表,但PySimpleGUI要求该参数必须是一维字符串列表,这种格式错误导致表格渲染异常,仅显示一行数据。
修正步骤
- 修正表头格式:将
header从嵌套列表改为一维列表,去掉外层的方括号,让表头与数据列正确对应。 - 优化表格显示(可选):添加
num_rows参数指定默认显示的行数,若数据行数超过该值,表格会自动生成滚动条;同时统一窗口关闭逻辑,避免资源泄漏。
修正后的完整代码
import PySimpleGUI as sg rows=[ ["CULTUS","4","3500","300","550"], ["SONATA","3","5000","350","750"], ["KIA Sportage","3","6000","500","700"], ["Yaris","5","4000","300","600"], ["HONDA CIVIC","5","5500","300","600"], ["Pajero","2","7000","500","700"] ] # 改为一维列表,去掉外层嵌套的方括号 header = ["Model", "Available", "Price/Day","Liability Insurance/Day", "Comprehensive Insurance/Day"] layout=[[sg.Table( values=rows, headings=header, size=(500,300), num_rows=6, # 指定默认显示6行,匹配数据总行数 key="-TABLE-",) ], [sg.OK(),sg.Cancel()] ] window = sg.Window('TG Enterprises', layout ,size=(600,400)) event, values = window.read() window.close() # 统一关闭窗口,避免程序退出后窗口残留 print(event,values)
额外说明
headings参数的正确格式为[str, str, ...],每个元素对应一列的表头文本。num_rows参数用于设置表格默认展示的行数,适配数据量调整该值可提升界面观感。
内容的提问来源于stack exchange,提问作者anonymous
相关产品推荐
相关产品推荐

