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

PySimpleGui:点击输入文本框自动清空失效,如何清除内容?

解决PySimpleGUI InputText点击自动清空的问题

首先澄清一个误区:do_not_clear=False这个参数的作用是窗口事件循环处理后不清空输入框内容,和点击输入框时清空默认文本完全无关,所以设置它没效果是正常的。

要实现点击输入框自动清空默认内容,有两种实用方法:

方法一:监听输入框的点击事件

给InputText组件设置唯一key,然后在事件循环里捕获点击事件,触发清空操作:

import PySimpleGUI as sg

layout = [
    [sg.InputText("Message", key="-INPUT_BOX-")]
]

window = sg.Window("Demo", layout)

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break
    # 捕获输入框的点击事件并清空
    if event == "-INPUT_BOX-":
        window["-INPUT_BOX-"].update(value="")

window.close()

方法二:监听输入框获得焦点事件(更灵活)

给InputText设置enable_events=True,这样不管是点击输入框还是用Tab键切换到输入框,只要获得焦点就触发事件。如果只想清空默认文本,可以加个内容判断,避免清空用户后续输入的内容:

import PySimpleGUI as sg

layout = [
    [sg.InputText("Message", key="-INPUT_BOX-", enable_events=True)]
]

window = sg.Window("Demo", layout)

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break
    # 输入框获得焦点且内容为默认文本时清空
    if event == "-INPUT_BOX-" and window["-INPUT_BOX-"].get() == "Message":
        window["-INPUT_BOX-"].update(value="")

window.close()

如果需要每次点击输入框都清空(不管之前有没有输入内容),去掉代码里的内容判断即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:27:44