如何让PySimpleGUI表格每行完整显示多段文本内容?
解决PySimpleGUI表格多行文本被截断的问题
问题根源
你遇到的表格只显示每行第一个单词的问题,是因为传入Table的数据格式不符合要求:PySimpleGUI的Table组件要求values参数是二维列表(外层列表存所有行,每个子列表存一行的各列数据),但你传入的是一维字符串列表,组件会自动按空格拆分字符串为多列,而表格只有一列,因此只显示第一个空格前的内容。
解决方法
将一维字符串列表转换为二维列表,把每行文本单独包装进一个子列表中,修改后的代码如下:
# 原始文本拆分 data = "salv.e ADJ 1 1 VOC S M POS Always mostfreq [XXXAX] veryfreq well, unharmed, sound; alive; safe, saved; salv.e V 2 1 PRES ACTIVE IMP 2 S Always mostfreq [XXXBX] frequent be well/in good health; [salve => hello/hail/greetings; farewell/goodbye]; salve ADV POS Always mostfreq [XXXDX] lesser hail!/welcome!; farewell!; [salvere jubere => to greet/bid good day];".split('\n') # 格式化数据为二维列表 formatted_data = [[line] for line in data] # 更新表格数据 window['table'].update(values=formatted_data)
额外优化(可选)
如果文本过长仍有显示不全的情况,可以在初始化Table时指定列宽,比如:
[Table(values=[[1], [4]], headings=['Output'], num_rows=20, key="table", expand_x=True, justification='left', expand_y=True, col_widths=[120])]
col_widths参数可以自定义每列的宽度,确保长文本能完整显示。
内容的提问来源于stack exchange,提问作者Coconut
相关产品推荐
相关产品推荐

