小编Bly*_*yfh的帖子

为什么在专门使用 <Control-o> 时会触发文本小部件事件 <<Modified>>?

我遇到了一个我似乎无法理解的错误。我有一个 tkinter Text 小部件,它有一个在文本修改时触发的绑定。由于某种原因,当我使用组合键时,该事件会被触发,尽管它不应该被触发,因为它不会修改文本小部件的内容。

奇怪的部分来了:这只发生在 <Control-o> 上。我编写了一个简单的程序来演示该问题。除了特殊的预先指定的组合键(例如实际修改内容的 <Control-i>)之外,没有其他组合具有这样的行为。

为什么 <Control-o> 会出现这种情况?我该如何预防呢?

import tkinter as tk
root = tk.Tk()
txt = tk.Text(root)
txt.pack()
root.bind("<Control-u>", lambda e: print("doesn't trigger"))
root.bind("<Control-o>", lambda e: print("somehow triggers"))
txt.bind("<<Modified>>", lambda e: print("text got modified!")) # (keep in mind that this will only get triggered once)
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-text

3
推荐指数
1
解决办法
51
查看次数

标签 统计

python ×1

tkinter ×1

tkinter-text ×1