Tkinter 当用户单击条目小部件时,有没有办法删除条目小部件中输入的默认文本

Tkinter 当用户单击条目小部件时,有没有办法删除条目小部件中输入的默认文本,tkinter,Tkinter,我需要帮助,我在tkinter条目小部件中设置了默认文本。我需要的是,一旦用户单击entry小部件输入输入,默认文本需要自动清除 每次单击条目时,都会清除以前的内容。无论是来自默认stringvar值还是用户输入的上一个文本 import tkinter as tk root = tk.Tk() myvar = tk.StringVar() myvar.set("A test") def on_click(event): event.widget.delete(0, tk.END

我需要帮助,我在tkinter条目小部件中设置了默认文本。我需要的是,一旦用户单击entry小部件输入输入,默认文本需要自动清除

每次单击条目时,都会清除以前的内容。无论是来自默认stringvar值还是用户输入的上一个文本

import tkinter as tk

root = tk.Tk()

myvar = tk.StringVar()
myvar.set("A test")

def on_click(event):

    event.widget.delete(0, tk.END)

entry = tk.Entry(root, textvariable=myvar)
entry.bind("<Button-1>", on_click)
entry.pack()
root.mainloop()
将tkinter作为tk导入
root=tk.tk()
myvar=tk.StringVar()
myvar.set(“测试”)
单击时的def(事件):
event.widget.delete(0,tk.END)
entry=tk.entry(根,textvariable=myvar)
entry.bind(“,单击时)
entry.pack()
root.mainloop()

此解决方案同时处理“聚焦于”和“单击事件”以及默认文本的测试,因此在“单击”或“聚焦于”时不会删除其他文本

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

def on_click(event):
    ent2.config(foreground='black')
    if ent2.get() == "Click & type...":
        event.widget.delete(0, tk.END)
    else:
        ent2.config(foreground='black')

myvar = tk.StringVar()
myvar.set("Click & type...")

ent1 = ttk.Entry(root)
ent1.grid()

ent2 = ttk.Entry(root, textvariable=myvar)
ent2.config(foreground='gray')
ent2.bind("<Button-1>", on_click)
ent2.bind("<FocusIn>", on_click)
ent2.grid()

root.mainloop()
将tkinter作为tk导入
从tkinter导入ttk
root=tk.tk()
单击时的def(事件):
ent2.config(前台='black')
如果ent2.get()=“单击并键入…”:
event.widget.delete(0,tk.END)
其他:
ent2.config(前台='black')
myvar=tk.StringVar()
myvar.set(“单击并键入…”)
ent1=ttk.Entry(根)
ent1.grid()
ent2=ttk.Entry(根,textvariable=myvar)
ent2.config(前台为灰色)
ent2.bind(“,单击时)
ent2.bind(“,单击时)
ent2.grid()
root.mainloop()

您是只想在用户单击时删除它,还是想在用户使用tab键设置小部件的焦点时删除它?无论哪种情况,这都可能会让用户感到非常沮丧。如果他们键入某个内容,然后想要选择它(需要单击),或者想要在事后编辑它呢?在单击时将
event.widget.bindu(“”
添加到
)将使此行为仅在第一次单击时发生。