问题描述
当我选择用户名和密码部分时,如何自动删除此提示? (点击后不显示)
from tkinter import *
root =Tk()
def save_fonc():
kul=entry1.get()
pas=entry2.get()
print("Username:",kul,"Password:",pas)
#------------------
entry1=Entry(root)
entry1.insert(0,"Username")
entry1.pack()
#------------------
entry2=Entry(root)
entry2.insert(0,"Password")
#entry2.config(show="*")#and also I don't want to show password section.
entry2.pack()
#------------------
buton_kaydet=Button(root,text="Enter",command=save_fonc)
buton_kaydet.pack()
root.geometry("300x200")
root.mainloop()
解决方法
您可以在单击标签时删除文本。
示例:
from tkinter import *
root = Tk()
def clear_text(event):
event.widget.delete(0,"end")
entry1=Entry(root)
entry1.insert(0,"Username")
entry1.pack()
entry1.bind("<FocusIn>",clear_text)
它的作用是将它绑定到函数 clear_text
。 clear_text
清除标签中的文本。
完整代码:
from tkinter import *
root =Tk()
def save_fonc():
kul=entry1.get()
pas=entry2.get()
print("Username:",kul,"Password:",pas)
def clear_text(event):
event.widget.delete(0,"end")
#------------------
entry1=Entry(root)
entry1.insert(0,clear_text)
#------------------
entry2=Entry(root)
entry2.insert(0,"Password")
entry2.config(show="*")#and also I don't want to show password section.
entry2.pack()
entry2.bind("<FocusIn>",clear_text)
#------------------
buton_kaydet=Button(root,text="Enter",command=save_fonc)
buton_kaydet.pack()
root.geometry("300x200")
root.mainloop()
,
做一个清除输入框文本的函数,然后在函数中绑定。
def removeValue(event):
event.widget.delete(0,'end')
所以你可以改进你的代码:
from tkinter import *
root = Tk()
def save_fonc():
kul = entry1.get()
pas = entry2.get()
print("Username:",pas)
def pass_func(event):
entry2.delete(0,'end')
entry2.config(show='*')
# ------------------
entry1 = Entry(root)
entry1.insert(0,"Username")
entry1.pack()
entry1.bind('<FocusIn>',lambda e: entry1.delete(0,'end'))
# ------------------
entry2 = Entry(root)
entry2.insert(0,"Password")
entry2.pack()
entry2.bind('<FocusIn>',pass_func)
# ------------------
buton_kaydet = Button(root,command=save_fonc)
buton_kaydet.pack()
root.geometry("300x200")
root.mainloop()
所以基本上 .bind
在这种情况下将每个条目绑定到一个事件:'<FocusIn>'
当焦点切换到该小部件时触发。同样在第二种情况下,条目仅在事件触发后配置,以便“密码”正常可见