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
相关产品推荐
相关产品推荐

