PySimpleGUI表格显示含空格文件名出现大括号问题求助
解决PySimpleGUI Table元素显示带空格文件名时出现大括号的问题
问题根源
你传递给Table组件的pdf_results数据格式不符合要求:每个单元格的内容被额外嵌套了一层列表。PySimpleGUI的Table要求每行是字符串元素的一维列表,而非列表嵌套列表。当单元格内容是列表类型时,组件会对带空格的元素自动添加大括号进行格式区分,这就是带空格文件名被包裹的原因。
修正方案
将pdf_results中的嵌套结构改为一维字符串列表,直接传递每个单元格的字符串值即可。
修正后的完整代码
import PySimpleGUI as Sg fake_init_data = [] results_table_headings = ["First Column", "Second Column"] results_table_layout = [[Sg.Table(values=fake_init_data[:][:], headings=results_table_headings, auto_size_columns=False, justification='left', num_rows=5, key="results_table", row_height=20, col_widths=[30, 30], enable_events=True)]] window = Sg.Window("Version .1.0", results_table_layout, finalize=True) ui_results_table = window["results_table"] # 修正数据格式:去掉单元格的嵌套列表,直接用字符串 pdf_results = [["Fonzy Cunningham.cool", "HighFive"], ["FonzyCunningham.cool", "High Six"]] row_colors = [[0, "#64778D"], [1, "#64778D"]] ui_results_table.update(values=pdf_results, row_colors=row_colors) while True: event, values = window.read(timeout=1) if event != "__TIMEOUT__" and event is not None: print("##################################################") print(f"EVENT = {event}") if event == Sg.WINDOW_CLOSED: break
关键说明
- 原代码中
[['Fonzy Cunningham.cool'], ["HighFive"]]这种嵌套列表会被Table组件识别为单元格内的列表数据,而非单纯的字符串内容。 - 修正后每行是一维列表,每个元素为字符串,PySimpleGUI会正常渲染所有文本,包括带空格的文件名。
内容的提问来源于stack exchange,提问作者Toyo
相关产品推荐
相关产品推荐

