在列中创建具有列表理解的多行元素会在 PySimpleGUI 中出错

Creating Multiline elements with list comprehension in a column gives error in PySimpleGUI

我已经创建了具有列表理解的多行元素 to make it look like it's a table。现在,我想将这些元素放入一个列中并并排创建多个列。

代码:

some_string = 'some string'
x_labels = ['0', '1', '2', '3', '4']
y_labels = ['a', 'b', 'c', 'd', 'e']

main_column = [
    [sg.T(some_string)],
    [[sg.Multiline(size=(10, 3), key=(x, y), disabled=True, justification='center', no_scrollbar=True)
      for x in range(len(x_labels))] for y in range(len(y_labels))]]

extra_column = [[sg.T(y_labels[y], justification='center')] for y in range(len(y_labels))]

layout = [[sg.Column(extra_column), sg.Column(main_column)]]

window = sg.Window('Table Test', layout, default_element_size=(12, 1), element_padding=(1, 1),
                   return_keyboard_events=True)

哪个给出 this error。据我了解,每个布局或列对象都是一个元素列表。

我尝试过的:

这应该意味着它是一个元素列表的列表,也可以在列元素内部使用。我错过了什么吗?

main_column = [
    [sg.T(some_string)],
    [[sg.Multiline(size=(10, 3), key=(x, y), disabled=True, justification='center', no_scrollbar=True) for x in range(len(x_labels))] for y in range(len(y_labels))],
]

main_colum[1] 不是元素列表,而是这里的元素列表列表。这意味着 main_column 不是元素列表的列表。

main_colum应该修改为

main_column = [
    [sg.T(some_string)]] + [
    [sg.Multiline(size=(10, 3), key=(x, y), disabled=True, justification='center', no_scrollbar=True)
        for x in range(len(x_labels))]
            for y in range(len(y_labels))
]