当前位置:  开发笔记 > 编程语言 > 正文

按下Tkinter时清除输入框文本

如何解决《按下Tkinter时清除输入框文本》经验,为你挑选了1个好方法。

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

    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("", removeValue)
            if p == 1:
                self.entry.insert(0, 'Enter predicted')
                self.entry.place(x = (getWidth(master) - 140), y = (i * 30) + 26)
                self.entry.bind("", removeValue)

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



1> Blackbeard..:

假设您已整理好默认文本,则想在某处创建事件绑定,并使用上面注释的常规格式,不知道为什么它不是答案,因为它是正确的:

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("", 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

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有