【问题标题】:Entry box text clear when pressed Tkinter按下时输入框文本清除 Tkinter
【发布时间】:2016-01-02 23:02:41
【问题描述】:

我不确定这是否已经被询问过,但我有多个输入框,其中包含一段默认文本。我不是在尝试设置默认文本,而是在单击输入框时尝试删除。我希望能够在单击输入框后立即删除默认文本,这样用户就不必这样做。我想知道是否有人可以分享一个有关如何完成此操作的快速示例,以便我可以实施。

    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)

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

【问题讨论】:

  • entry.bind("&lt;Button-1&gt;", function_name) ?
  • 我将如何使用它?

标签: python tkinter


【解决方案1】:

假设你已经整理好你的默认文本,你想在某处创建一个事件绑定,使用上面评论的一般格式,不知道为什么它不是答案,因为它是正确的:

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()

最后,http://effbot.org 是你的朋友: http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

编辑:来自评论的 OP 附加信息。 如果您有多个条目并且需要单独清除每个条目,则可以简单地引用使用

调用绑定方法的小部件
event.widget

您的回调可以按如下方式工作:

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

【讨论】:

  • 完整示例,别忘了pack小部件。
  • 再一次,你的观点很好,为了完整起见,我会添加这个。为你 +1,让我今天保持一致 :)
  • 感谢您的帮助。我认为这就像将它包含在我的 For 循环中一样简单。我有多个输入框,我已经让它工作了,但是当我点击一个输入框时,它会删除最后一个创建的文本。有没有办法可以将它设置为我在循环中创建的每个单独的输入框?
  • 是的 - 请参阅下面的我的编辑或@Bryan Oakley 的回答,我们似乎几乎同时添加了它们。
  • 我认为return None 没有必要。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2013-06-21
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2021-11-23
    相关资源
    最近更新 更多