3

我有一个使用<FocusOut>绑定自动将编辑保存Entry到列表中的应用程序。

使用导航条目或单击另一个条目时保存Entry文本没有问题,但是如果我更改一个条目上的文本,然后如果我在另一个框架中单击鼠标,则无法在最后选择的条目,其中的信息未注册。TABListBox<FocusOut>

Save如果不使用 GUI 上的按钮,如何避免这种情况?对于其中的每个选择,ListBox都有不同Entry的框,因此用户必须Save多次按下按钮。我想避免这种情况。

4

1 回答 1

2

改为实时编辑/保存文本

看起来您想要实时获取更新的文本。在这种情况下,我所做的是使用'KeyRelease'-binding。简单、有效的条目特定且立即生效。

在概念上:

win = Tk()
def dosomething(*args):
    # update the corresponding text anywhere, save your text, whatever
    print(entry.get())
    
entry = Entry()
entry.bind("<KeyRelease>", dosomething)
entry.pack()
    
win.mainloop()

在此处输入图像描述

在行动:

M
Mo
Mon
Monk
Monke
Monkey
Monkey 
Monkey e
Monkey ea
Monkey eat
Monkey eats
Monkey eats 
Monkey eats b
Monkey eats ban
Monkey eats ban
Monkey eats bana
Monkey eats banan
Monkey eats banana
于 2016-10-14T12:16:12.627 回答