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

PySimpleGUI更新InputText控件报_tkinter.TclError无效命令名错误如何解决

错误原因
  • 核心原因是没有添加窗口关闭的退出逻辑:当你点击窗口右上角的关闭按钮时,win.Read()会返回事件为sg.WIN_CLOSED,此时窗口及内部所有控件已经被底层tkinter销毁,代码依然尝试执行update方法操作不存在的控件,就触发了本次报错。
  • 代码还存在一处不规范写法:readonly参数应该传布尔值True,而非字符串'true',该问题虽不会直接触发本次报错,但会导致输入框的只读属性不生效。
修复方案

在事件循环开头添加窗口关闭的判断逻辑,触发关闭时直接跳出循环即可,修复后的完整代码如下:

import PySimpleGUI as sg
layout=[
[sg.InputText('',key='-IN-')],
[sg.InputText('',readonly=True,key='-RESULT-')]
]
win=sg.Window('Test',layout)
while True:
    event,values=win.Read()
    # 新增关闭事件判断
    if event == sg.WIN_CLOSED:
        break
    win['-RESULT-'].update(win['-IN-'].get())
# 释放窗口资源
win.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:15:04