如何使用函数清除多个 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')