如何从文本小部件中取消绑定Ctrl-O?

时间:2017-12-04 01:27:15

标签: python tkinter tk keyboard-events key-bindings

在文本小部件中 Ctrl + O 似乎是在文本区域添加新行。我有以下代码将方法绑定到 Ctrl + O 但它仍然添加换行符:

import tkinter as tk

root = tk.Tk()

txt = tk.Text(root)
txt.bind('<Control-o>', lambda event: print("o"))
txt.bind('<Control-O>', lambda event: print("O"))

txt.pack()

root.mainloop()

如何阻止 Ctrl + O 添加换行符?

1 个答案:

答案 0 :(得分:3)

根据thisthis 返回文字字符串“break”可以防止这种情况发生,就像结束return "break"的回调函数一样。像:

import tkinter as tk

root = tk.Tk()

def ctrl_o(event):
    print("o")
    return "break"

txt = tk.Text(root)
txt.bind('<Control-o>', ctrl_o)
txt.bind('<Control-O>', ctrl_o)

txt.pack()

root.mainloop()

lambda但我无法return "break"