PySimpleGUI Multiline元素文本无法正确分行显示问题求助
问题原因
- PySimpleGUI的Multiline元素初始值仅接受字符串类型输入,你传入的是嵌套列表
layout_list,组件会自动将非字符串的序列类型转换为带{}包裹的拼接字符串,导致出现多余的大括号。 - 你没有为每行文本添加换行符
\n,所有内容会默认在同一行展示。 - 事件循环中重复调用
window.read()会导致窗口响应逻辑异常。
修复方案
先将嵌套列表转换为每行以换行符分隔的字符串再传入Multiline,同时修正事件循环逻辑,修正后代码如下:
import PySimpleGUI as sg layout_list = [ ['Text 1'], ['Text 2'], ['Text 3'] ] # 把嵌套列表转成带换行的字符串 multiline_content = '\n'.join(item[0] for item in layout_list) layout = [ [sg.Multiline(multiline_content, s=(60, 5), disabled=True, key='key-multiline')] ] window = sg.Window('Help!', layout=layout, margins=(1, 1)) while True: event, values = window.read() # 新增窗口关闭的退出逻辑 if event == sg.WIN_CLOSED: break window.close()
运行后Multiline就会按预期分行展示文本。
内容的提问来源于stack exchange,提问作者Eskimo868
相关产品推荐
相关产品推荐

