在列中创建具有列表理解的多行元素会在 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 是否可以用作布局,它确实如此:
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))]]
layout = main_column
window = sg.Window('Table Test', layout, default_element_size=(12, 1), element_padding=(1, 1),
return_keyboard_events=True)
这应该意味着它是一个元素列表的列表,也可以在列元素内部使用。我错过了什么吗?
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))
]
我已经创建了具有列表理解的多行元素 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 是否可以用作布局,它确实如此:
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))]] layout = main_column window = sg.Window('Table Test', layout, default_element_size=(12, 1), element_padding=(1, 1), return_keyboard_events=True)
这应该意味着它是一个元素列表的列表,也可以在列元素内部使用。我错过了什么吗?
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))
]