Python 按下Tkinter键时,输入框文本清除

Python 按下Tkinter键时,输入框文本清除,python,tkinter,Python,Tkinter,我不确定是否已经问过这个问题,但我有多个输入框,其中包含一段默认文本。我不是试图设置默认文本,而是试图在单击输入框时删除。我希望在单击输入框时能够删除默认文本,这样用户就不必这样做。我想知道是否有人可以分享一个关于如何做到这一点的快速示例,以便我能够实现 def removeValue(event): self.entry.delete(0, 'end') return None for i in range(1, numberOfStudent

我不确定是否已经问过这个问题,但我有多个输入框,其中包含一段默认文本。我不是试图设置默认文本,而是试图在单击输入框时删除。我希望在单击输入框时能够删除默认文本,这样用户就不必这样做。我想知道是否有人可以分享一个关于如何做到这一点的快速示例,以便我能够实现

    def removeValue(event):
        self.entry.delete(0, 'end')
        return None

    for i in range(1, numberOfStudents + 1):
        for p in range(0,2):
            self.entry = Entry(self.master)
            if p == 0:
                self.entry.insert(0, 'Enter name of student')
                self.entry.place(x = 10, y = (i * 30) + 26)
                self.entry.bind("<Button-1>", removeValue)
            if p == 1:
                self.entry.insert(0, 'Enter predicted')
                self.entry.place(x = (getWidth(master) - 140), y = (i * 30) + 26)
                self.entry.bind("<Button-1>", removeValue)
def removeValue(事件):
self.entry.delete(0,“结束”)
一无所获
对于范围内的i(1,numberOfStudents+1):
对于范围(0,2)内的p:
self.entry=entry(self.master)
如果p==0:
self.entry.insert(0,“输入学生姓名”)
self.entry.place(x=10,y=(i*30)+26)
self.entry.bind(“,removeValue)
如果p==1:
self.entry.insert(0,“输入预测值”)
self.entry.place(x=(getWidth(master)-140),y=(i*30)+26)
self.entry.bind(“,removeValue)

到目前为止,我已经有了这一点,但只删除了最后一个输入框文本。

假设您已经整理好了默认文本,您想在某个地方创建一个事件绑定,使用上面注释的一般格式,但不确定为什么它不是答案,因为它是正确的:

import tkinter as tk

root = tk.Tk()
e = tk.Entry(root)
e.insert(0, "some text")

def some_callback(event): # note that you must include the event as an arg, even if you don't use it.
    e.delete(0, "end")
    return None

e.bind("<Button-1>", some_callback)

e.pack()
然后,您的回调可以按如下方式工作:

def some_callback(event):
    event.widget.delete(0, "end")
    return None

事件绑定调用的方法被赋予一个事件对象。此对象具有对触发事件的小部件的引用。您可以使用它来清除小部件:

def removeValue(event):
    event.widget.delete(0, 'end')

entry.bind(“,function\u name)
?我该如何使用它呢?作为一个完整的例子,不要忘了将小部件
pack
打包。同样,你有一个很好的观点,为了完整性,我将添加它+谢谢你的帮助。我认为这将是一样简单,包括在我的For循环。我有多个输入框,我已经让它工作,但当我点击一个输入框,它会删除最后一个创建的文本。是否有一种方法可以将其设置到我在循环中创建的每个输入框中?是的-请参阅我的编辑或下面的@Bryan Oakley的回答,我们似乎差不多同时添加了它们。我认为
不必返回None
def removeValue(event):
    event.widget.delete(0, 'end')