我有一个带有一堆按钮的Python / Tkinter应用程序,我想让用户能够编辑这些按钮上的文本。
对我来说,最直观的方法是,如果用户右键单击按钮,则在按钮顶部创建一个Entry小部件,并暂时隐藏按钮。
我做到了,它有点工作,但有一个问题。该按钮不想隐藏。例如。我创建了一个Entry小部件,它最初出现在Button的顶部。然后,如果我在输入框内单击,它会短暂消失(一两秒钟),再次显示该按钮,然后重新出现。如果我点击'tab'并将焦点移出Entry,它会完全消失(再次显示按钮),只有当我点击进入/按钮区域时才会重新出现。
我做错了什么/无意识,这是一个错误,是否有解决方法?
这是我的条目创建代码('self'是按钮小部件):
def on_mouse_rightclick(self, event):
self.prev_state = self["state"]
self.entry = Entry(self, {"width":8})
self.entry.pack(side=TOP, anchor=W)
self.entry.insert(0, self['text'])
self.entry.bind('<Return>', self.on_entry_edit)
self.entry.bind('<Escape>', self.on_escape)
self['state'] = DISABLED
self.lower(self.entry)
我尝试拨打self.entry.lift()
,甚至暂时从按钮小部件取消绑定'<Button-1>'
,但没有效果。
我在Windows上使用32位Python 2.7.9。