gpt4 book ai didi

python - 使用 PySimpleGUI 将窗口按列划分会报错

转载 作者:太空宇宙 更新时间:2023-11-04 11:15:38 25 4
gpt4 key购买 nike

我正在尝试构建一个显示两列的 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()

关于python - 使用 PySimpleGUI 将窗口按列划分会报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57073906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com