我遇到了一个我似乎无法理解的错误。我有一个 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)