You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符串转为PySimpleGUI.Text对象并动态生成GUI布局?

基于字典动态生成PySimpleGUI布局

需求

现有PySimpleGUI布局结构如下:

thing1   value1   (inputbox1)
thing2   value2   (inputbox2)
thing3   value3   (inputbox3)

其中inputbox#是用户输入框,thing#和value#为普通文本。需要从字典中取值,通过循环动态生成布局,以适配字典条目数量变化带来的布局行数变化。

尝试过程中的疑问

曾尝试将字符串数据转换后添加到col中,查看col的内部数据类型:

col=[     [sg.Text('john')],     sg.Text('john'), ]

布局中使用该列:

[sg.Column(col,size=(1420,600),scrollable=True)],

打印后发现:

  • col[0]是[<PySimpleGUI.PySimpleGUI.Text object at 00x00000298BA1A67A0>],类型为list
  • col[1]是<PySimpleGUI.PySimpleGUI.Text object at 00x00000298BA1A5E70>,类型为PySimpleGUI.PySimpleGUI.Text

疑问:能否将字符串数据直接转换为PySimpleGUI.PySimpleGUI.Text对象?有没有更优的实现方式?

解决方法(更新)

最终使用列表推导式实现了需求,布局代码如下:

[[sg.Text(dict[globproj][f'Cost{i}'])] for i in range(1,amt_cost)],

其中amt_cost为字典中对应条目的数量,Cost{i}是字典中存储价格的键。

该方法可行的原因:PySimpleGUI的布局本质是嵌套列表结构,无法直接在布局中写入循环语句,但列表推导式本身会生成一个符合要求的列表,可直接作为布局的一部分被识别。

内容的提问来源于stack exchange,提问作者anon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 03:04:53