python - 当我使用绑定(bind)函数时,Tkinter Entry/Text 小部件问题

标签 python events tkinter tkinter-entry

我是 Tkinter 的新手,我想在打字时打印 Entry 的内容。 这是我尝试过的代码:

from tkinter import *


def get_(e):
    print(entry.get())

root = Tk()
entry = Entry(root)
entry.pack()

entry.bind("<KeyPress>", get_)

mainloop()

但它似乎不是“同步”(当我输入“123”时,输出仅为“12”等)

下面的代码可以正常工作,但我不知道为什么:

from tkinter import *


def get_(e):
    print(entry.get())

root = Tk()
entry = Entry(root)
entry.pack()

root.bind("<KeyPress>", get_)
## or this: entry.bind("<KeyRelease>", get_)
## or this: entry.bind_all("<KeyPress>", get_)

mainloop()

有什么我不知道的奇怪规则吗?任何和所有的帮助都会很棒,提前感谢!

最佳答案

Question: entry.bind("<KeyPress>" seems not "synchronous" (when I type "123" in output only is "12" and so on ...), while root.bind("<KeyPress>" works.

事件entry.bind("<KeyPress>", ...tk.Entry 中的值之前被解雇已更新。这解释了为什么输出总是后面一个字符。

事件root.bind("<KeyPress>", ...tk.Entry 中的值之后被解雇已更新。这解释了为什么它有效。

替代方案:


引用:

关于python - 当我使用绑定(bind)函数时,Tkinter Entry/Text 小部件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59497222/

相关文章:

python - Numpy 数组创建

python - 换行适用于 Windows 但不适用于 Linux

python - ipython 0.10.1 中的意外缩进

MySQL/MariaDB GET_LOCK 生命周期与事件

python - 当窗口展开或最大化时如何调整可滚动框架的大小?

python - 当我在 tkinter 中使用条目时,我得到空字符串

python - 从 Excel 文档获取超链接 URL

events - 如何弱订阅事件/可观察量

javascript - 事件绑定(bind)和修改innerHTML

python - 如何提示用户大写锁定已启用