多行 window 和列表

Multiline window and list

我希望我的多行元素看起来像这样:

Text 1
Text 2
Text 3

但它看起来像这样:

{{Text 1}} {{Text 2}} {{Text 3}}

我的代码:

import PySimpleGUI as sg

layout_list = [
    ['Text 1'],
    ['Text 2'],
    ['Text 3']
]

layout = [
    [sg.Multiline(layout_list, s=(60, 5), disabled=True, key='key-multiline')]
]

window = sg.Window('Help!', layout=layout, margins=(1, 1))

while True:
    event, values = window.read()
    window.read()

我设法使用 Listbox 而不是 Multiline 来获取它。代码如下所示。请注意使用列表框时的区别,layout_list 不是列表的列表,而只是一个列表。

import PySimpleGUI as sg                        # Part 1 - The import


layout_list = [
    'Text 1',
    'Text 2',
    'Text 3'
]

layout = [
    [sg.Listbox( values= layout_list, s=(60, 5), disabled=True, key='key-multiline')]
]

window = sg.Window('Help!', layout=layout, margins=(1, 1))

while True:
    event, values = window.read()
    window.read()

输出window符合要求。

参考

import PySimpleGUI as sg

layout_list = [
    ['Text 1'],
    ['Text 2'],
    ['Text 3'],
]

text = '\n'.join(item[0] for item in layout_list)    # Convert layout_list into string

layout = [
    [sg.Multiline(text, s=(60, 5), disabled=True, key='key-multiline')]
]

sg.Window('Help!', layout=layout, margins=(1, 1)).read(close=True)