使用 PySimpleGUI 在列中划分 window 会出错
Using PySimpleGUI to divide the window in columns gives an error
我正在尝试构建一个显示两列的 GUI:
一列将包含所有输入字段和列表框,第二列将显示来自 pandas dataframe
.
的一些数据
我认为使用 Frames
执行此操作是个好主意,但我 运行 在尝试创建 Frame
:
时遇到错误
layout = [sg.Frame('Input data',[[
sg.Text('Input:'),
sg.Input(do_not_clear=False),
sg.Button('Read'), sg.Exit(),
sg.Text('Alternatives:'),
sg.Listbox(values=('alternatives...', ''), size=(30, 2), key='_LISTBOX_')]])]
结果:
TypeError: AddRow() argument after * must be an iterable, not Frame
如何解决这个问题?
我在想是否可以先定义列,使用Frame
,然后将列放入layout
的定义中?
你必须使用[[ ]]
layout = [[
]]
外部 [ ]
表示所有数据,内部 [ ]
表示第一行 - 即使您只需要一行。
工作示例:
import PySimpleGUI as sg
layout = [[
sg.Frame('Input data',[[
sg.Text('Input:'),
sg.Input(do_not_clear=False),
sg.Button('Read'), sg.Exit(),
sg.Text('Alternatives:'),
sg.Listbox(values=('alternatives...', ''), size=(30, 2), key='_LISTBOX_')
]])
]]
window = sg.Window('App', layout)
event, values = window.Read()
window.Close()
我正在尝试构建一个显示两列的 GUI:
一列将包含所有输入字段和列表框,第二列将显示来自 pandas dataframe
.
我认为使用 Frames
执行此操作是个好主意,但我 运行 在尝试创建 Frame
:
layout = [sg.Frame('Input data',[[
sg.Text('Input:'),
sg.Input(do_not_clear=False),
sg.Button('Read'), sg.Exit(),
sg.Text('Alternatives:'),
sg.Listbox(values=('alternatives...', ''), size=(30, 2), key='_LISTBOX_')]])]
结果:
TypeError: AddRow() argument after * must be an iterable, not Frame
如何解决这个问题?
我在想是否可以先定义列,使用Frame
,然后将列放入layout
的定义中?
你必须使用[[ ]]
layout = [[
]]
外部 [ ]
表示所有数据,内部 [ ]
表示第一行 - 即使您只需要一行。
工作示例:
import PySimpleGUI as sg
layout = [[
sg.Frame('Input data',[[
sg.Text('Input:'),
sg.Input(do_not_clear=False),
sg.Button('Read'), sg.Exit(),
sg.Text('Alternatives:'),
sg.Listbox(values=('alternatives...', ''), size=(30, 2), key='_LISTBOX_')
]])
]]
window = sg.Window('App', layout)
event, values = window.Read()
window.Close()