如何使用函数清除多个 tkinter 输入字段
How to clear more than one tkinter entry field using a function
我有一个相当简单的问题,当我在我的 GUI 上的特定 tkinter 输入字段中时,当我按下退格键时,它会删除任何文本的字段。
一切都很顺利,直到我想在多个输入字段上使用此方法。
代码
import tkinter
class BuildWidgets:
def __init__(self, master):
self.master = master # reference the main window
self.BACKSPACE = ''
self.TextBox = tkinter.Entry(self.master,width=10)
self.TextBox.bind("<Key>", self.clearTextBox)
self.TextBox.pack()
self.TextBox2 = tkinter.Entry(self.master,width=10)
self.TextBox2.bind("<Key>", self.clearTextBox2)
self.TextBox2.pack()
def clearTextBox(self,event):
pressed = event.char
if pressed == self.BACKSPACE:
self.TextBox.delete(0,'end')
def clearTextBox2(self,event): #I want to eliminate repetitive methods
pressed = event.char
if pressed == self.BACKSPACE:
self.TextBox2.delete(0,'end')
我基本上将 键事件 绑定到输入字段,回调检查是否按下了 backspace,如果按下则删除文本。但是,当我添加第二个输入字段时,我需要创建第二个方法,并且它会针对每个输入字段继续进行!这是因为我找不到将字段的条目传递给单个方法的方法,因为它是小部件中的回调。
问题
我如何或者我可以创建一个明确的方法来区分调用它的输入字段?
传递给函数的 event
对象有一个 widget
属性,它是捕获错误的小部件。
def clearTextBox(self,event):
pressed = event.char
if pressed == self.BACKSPACE:
event.widget.delete(0,'end')
我有一个相当简单的问题,当我在我的 GUI 上的特定 tkinter 输入字段中时,当我按下退格键时,它会删除任何文本的字段。 一切都很顺利,直到我想在多个输入字段上使用此方法。
代码
import tkinter
class BuildWidgets:
def __init__(self, master):
self.master = master # reference the main window
self.BACKSPACE = ''
self.TextBox = tkinter.Entry(self.master,width=10)
self.TextBox.bind("<Key>", self.clearTextBox)
self.TextBox.pack()
self.TextBox2 = tkinter.Entry(self.master,width=10)
self.TextBox2.bind("<Key>", self.clearTextBox2)
self.TextBox2.pack()
def clearTextBox(self,event):
pressed = event.char
if pressed == self.BACKSPACE:
self.TextBox.delete(0,'end')
def clearTextBox2(self,event): #I want to eliminate repetitive methods
pressed = event.char
if pressed == self.BACKSPACE:
self.TextBox2.delete(0,'end')
我基本上将 键事件 绑定到输入字段,回调检查是否按下了 backspace,如果按下则删除文本。但是,当我添加第二个输入字段时,我需要创建第二个方法,并且它会针对每个输入字段继续进行!这是因为我找不到将字段的条目传递给单个方法的方法,因为它是小部件中的回调。
问题
我如何或者我可以创建一个明确的方法来区分调用它的输入字段?
传递给函数的 event
对象有一个 widget
属性,它是捕获错误的小部件。
def clearTextBox(self,event):
pressed = event.char
if pressed == self.BACKSPACE:
event.widget.delete(0,'end')