如何在PySimpleGui中点击输入框时清除预填充内容?
PySimpleGui 输入框点击自动清空预填充内容
你可以通过监听输入框的焦点进入事件来实现这个需求,既保留预填充的提示作用,又优化用户体验,具体实现如下:
核心思路
绑定输入框的 <FocusIn> 事件,当输入框获得焦点时,判断当前内容是否为初始的预填充文本,若是则清空。
完整代码示例
import PySimpleGUI as sg # 定义布局,保留预填充文本和唯一key layout = [ [sg.InputText("yourInput", key='-INPUT-')], [sg.Button('Ok')] ] window = sg.Window('Input Auto Clear Demo', layout) while True: event, values = window.read() if event == sg.WIN_CLOSED: break # 监听输入框获得焦点的事件 if event == '-INPUT- + <FocusIn>': # 仅当内容为初始提示文本时清空,避免误删用户输入内容 if values['-INPUT-'] == 'yourInput': window['-INPUT-'].update('') window.close()
补充说明
- 这种方式不会影响用户后续输入的内容:如果用户已经输入了自定义内容,再次点击输入框不会清空,只会聚焦到输入框
- 若希望每次点击都清空(不管当前内容是什么),可以去掉
if values['-INPUT-'] == 'yourInput':这个判断,直接执行update('')
内容的提问来源于stack exchange,提问作者BenK
相关产品推荐
相关产品推荐

