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

如何使用PySimpleGUI获取输入并存储至变量?代码调试求助

问题分析与解决方法

你的代码存在3个关键问题,修正后即可正常实现输入存储与显示功能:

  • 错误直接用Output类访问窗口元素,PySimpleGUI需要通过元素的key或索引定位目标元素
  • 未在正确时机(点击Ok按钮时)获取输入值,而是每次窗口读取后都执行赋值,会导致初始阶段报错
  • 误解了Input()的作用:它是创建输入框元素的方法,而非直接获取输入值的方式,输入内容需通过window.read()返回的values对象获取

修正后的完整代码

from PySimpleGUI import *

layout = [
    [Text("Name: "), Input(key="-INPUT-")],  # 给输入框添加key标识
    [Ok(key="-OK-")],
    [Text("You Put: "), Output(key="-OUTPUT-")]  # 给输出框添加key标识
]

window = Window("Just a window", layout)

while True:
    event, values = window.read()
    # 点击窗口关闭按钮时退出循环
    if event == WINDOW_CLOSED:
        break
    # 点击Ok按钮时,获取输入值并更新输出内容
    if event == "-OK-":
        name = values["-INPUT-"]  # 通过key获取输入框的内容
        window["-OUTPUT-"].update(value=name)  # 通过key更新输出框的显示

window.close()

关键修改说明

  • 给Input和Output元素添加key参数:用自定义字符串标识元素,比索引更直观,避免元素顺序变化导致的错误
  • 将输入值获取与输出更新逻辑放到Ok按钮的事件判断中:只有用户主动确认时才执行操作,避免窗口初始化阶段的空值问题
  • 通过values["key名称"]获取对应元素内容:这是PySimpleGUI获取用户输入的标准方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:52:31