【问题标题】:How can I make sure the content of a tkinter entry is saved on FocusOut?如何确保 tkinter 条目的内容保存在 FocusOut 上?
【发布时间】:2017-02-23 19:28:28
【问题描述】:

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

使用TAB 浏览条目或单击另一个条目时保存Entry 文本没有问题,但是如果我更改一个条目上的文本,然后如果我用鼠标单击@ 987654326@ 在另一个框架中,<FocusOut> 不适用于最后选择的条目,并且其中的信息未注册。

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

【问题讨论】:

标签: python tkinter focusout tkinter-entry


【解决方案1】:

改为实时编辑/保存文本

您似乎想实时获取更新的文本。在这种情况下,我所做的是使用 '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

【讨论】:

  • 谢谢,这正是我所需要的!
猜你喜欢
  • 1970-01-01
  • 2019-04-21
  • 2017-01-25
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多