如何在Tkinter中清空输入框并将回车键绑定到按钮
解决两个Tkinter功能问题:清空输入框与回车键绑定
下面是修改后能实现你需求的完整代码:
import tkinter as Tk from tkinter import * root = Tk() root.geometry("300x400") root.title(" Convert Numbers ") def Take_input(event=None): INPUT = inputtxt.get("1.0", "end-1c") numbers = INPUT.replace(") ", "").replace("(", "").replace("-", "") # Convert the numbers to strings. numbers = numbers.split() # Join the numbers with commas. converted_numbers = ", ".join(numbers) num_list = converted_numbers.split(", ") num_set = set(num_list) output = ', '.join(num_set) Output.delete('1.0', END) Output.insert(END, output) root.clipboard_clear() root.clipboard_append(output) # 清空输入框 inputtxt.delete("1.0", END) l = Label(text = "Paste from FastPeople.com Here:") inputtxt = Text(root, height = 10, width = 25, bg = "light yellow") Output = Text(root, height = 10, width = 25, bg = "light cyan") Display = Button(root, height = 2, width = 20, text ="Click here to convert.\n Copy from below.", command = lambda:Take_input()) # 绑定回车键到转换功能 root.bind('<Return>', Take_input) l.pack() inputtxt.pack() Display.pack() Output.pack() mainloop()
问题1:点击按钮后自动清空输入框
Text组件的delete方法需要指定删除范围,你之前的写法缺少必要参数。正确写法是inputtxt.delete("1.0", END):
"1.0"代表文本框的起始位置(第1行第0列)END代表文本框的末尾位置
把这行代码加到Take_input函数末尾,就能在转换完成后自动清空输入框。
问题2:将回车键绑定到按钮功能
你之前的绑定写法存在两个问题:
- 绑定对象错误:应该把回车键绑定到主窗口
root或输入框inputtxt,而非按钮本身 - 函数调用错误:
lambda:Take_input没有执行函数,要么写成lambda e:Take_input(),要么直接绑定Take_input(因为函数已经定义了event=None的兼容参数)
这里用root.bind('<Return>', Take_input),意味着无论焦点在哪个组件,按下回车键都会触发转换;如果只想在输入框内按回车触发,可改成inputtxt.bind('<Return>', Take_input)。
内容的提问来源于stack exchange,提问作者TheCarloJ
相关产品推荐
相关产品推荐

