我想添加“搜索到此处”这个词!在条目内部,一旦用户开始输入条目就会消失!
就像我们在facebook网页上看到的那样“你在想什么”
from tkinter import *
class Application(Frame):
def __init__(self, master=NONE):
Frame.__init__(self, master)
self.pack()
self.create_widgets()
def create_widgets(self):
self.frame = Frame(self)
self.entry = Entry(self.frame)
self.entry.pack()
self.frame.pack()
if __name__ == "__main__":
root = Tk()
app = Application(master=root)
app.mainloop()
答案 0 :(得分:2)
您可以处理first
窗口小部件的关键事件,并在第一个关键事件发生时删除内容:
Entry
要检测我已绑定的第一个更改,并将from tkinter import *
class Application(Frame):
def __init__(self, master=NONE):
Frame.__init__(self, master)
self.pack()
self.create_widgets()
def create_widgets(self):
self.frame = Frame(self)
self.entry = Entry(self.frame)
self.entry.modified = False
self.entry.insert(0, "Search Here!")
self.entry.bind("<Key>", self.entry_key)
self.entry.pack()
self.frame.pack()
def entry_key(self, event):
if not self.entry.modified:
self.entry.delete(0, END)
self.entry.modified = True
if __name__ == "__main__":
root = Tk()
app = Application(master=root)
app.mainloop()
一个名为False
的属性初始化为modified
小部件实例。当第一个关键事件发生时,将删除输入框的内容,并将Entry
属性设置为modified
,这将阻止在后续关键事件中清除内容。
答案 1 :(得分:0)
您必须使用&#34; StringVar&#34;设置或获取文本:
from tkinter import *
class Application(Frame):
def __init__(self, master=NONE):
Frame.__init__(self, master)
self.pack()
self.create_widgets()
def create_widgets(self):
self.frame = Frame(self)
my_entry = StringVar()
my_entry.set("Search here")
self.entry = Entry(self.frame, text=my_entry)
self.entry.pack()
self.frame.pack()
if __name__ == "__main__":
root = Tk()
app = Application(master=root)
app.mainloop()