我正在尝试使用TKinter创建地址簿。我有'姓名,年龄,电话等等'的输入字段。在每一个文本里面都有文字说明每个人是什么。所以在名称输入字段中,它会显示'输入名称'。我想要的是,当有人在名称输入字段中单击以开始输入时,它会删除当前位于其中的文本。我知道我需要做一个函数来清除这个条目,然后绑定到输入字段,但我卡住了。将函数绑定到Tkinter文本输入字段
你可以在底部看到我想用'def clearEvent'并试图将其绑定到TextField。我的问题是,def clearEvent函数低于一切,需要在顶部?还是我犯了一些其他错误?
from Tkinter import *
import sqlite3
class Hello():
def __init__(self, master):
frame=Frame(master, width=80, height=50)
frame.pack()
self.text = Label(frame, text=" ")
self.text.pack()
self.text.grid(row=0, sticky=W)
self.lab = Label(frame, text="name")
self.lab.pack(side=LEFT)
self.lab.grid(row=1)
self.TextField = Entry(frame, text = "name", width=30)
self.TextField.insert(0, "Enter Name")
self.TextField.pack()
self.TextField.grid(row=1)
self.TextField.bind("<Enter>", clearEvent)
self.TextField2 = Entry(frame, text = "age", width=30)
self.TextField2.insert(0, "Enter Age")
self.TextField2.pack()
self.TextField2.grid(row=2)
self.TextField3 = Entry(frame, text = "phone", width=30)
self.TextField3.insert(0, "Enter Phone #")
self.TextField3.pack()
self.TextField3.grid(row=3)
self.TextField4 = Entry(frame, text = "fblink", width=30)
self.TextField4.insert(0, "Enter Facebook Link")
self.TextField4.pack()
self.TextField4.grid(row=4)
self.btn=Button(frame, text='Add', command=self.add_note)
self.btn.pack()
self.btn.grid(row=5, rowspan=1, sticky="w")
self.showbtn = Button(frame, text='Update', command=self.show_notes)
self.showbtn.pack()
self.showbtn.grid(row=5, rowspan=1, sticky="")
self.delbtn = Button(frame, text='Delete', command=self.del_notes)
self.delbtn.pack()
self.delbtn.grid(row=5, rowspan=1, sticky="e")
self.content=Listbox(master, width=50)
self.content.pack()
def clearEvent(self, event):
self.TextField.delete(0,END)
我把,现在它说全局名称“NameError”:clearEvent没有定义 –
user2897013
@ user2897013:好吧,根据你的代码,'clearEvent' _is_ undefined。然而,有一个'self.clearEvent'。 –
nm,用self.clearEvent代替clearEvent,它工作。 – user2897013