我正试图在Tkinter中使用Entry小部件开发一个搜索栏。到目前为止,当用户通过绑定<FocusIn>
事件来点击条目时,我已经设法插入居中文本,该文本向左移动。当用户开始输入时,文本消失,当Entry小部件变空时,文本再次出现。在Tkinter Entry小部件中动画文本
使用justify
选项可以完成文字从中心到左侧的移动。这意味着文本从中心跳到左边,这不是我想要的。我想找到一种动画文本的动画方式,以便它顺利地从小部件的中心滑动到小部件的左侧。
任何帮助,将不胜感激。我知道这可能使用Tkinter画布吗?
在此先感谢。
这里是我的代码:
from Tkinter import *
class SearchEntry:
def __init__(self, master):
self.master = master
self.entry = Entry(self.master, foreground = '#666', justify = 'center')
self.entry.insert(0, 'Search')
self.entry.bind('<FocusIn>', self.onfocus)
self.entry.bind('<FocusOut>', self.outfocus)
self.update()
def update(self):
if self.entry.get() == '':
self.entry.insert(0, 'Search')
self.entry.icursor(0)
self.entry.bind('<Key>', self.keypress)
self.master.after(1, self.update)
def onfocus(self, event):
if self.entry.get() == 'Search':
self.entry.configure(justify = 'left')
self.entry.icursor(0)
self.entry.bind('<Key>', self.keypress)
def outfocus(self, event):
if self.entry.get() == 'Search':
self.entry.configure(justify = 'center')
def keypress(self, event):
self.entry.delete(0, END)
self.entry.unbind('<Key>')
感谢您的快速回复。我想我会尝试使用画布,也许我可以解决一些问题。 – aelamrn1