Python 如何从文本小部件解除Ctrl-O绑定?

Python 如何从文本小部件解除Ctrl-O绑定?,python,tkinter,tk,keyboard-events,key-bindings,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.m

在文本窗口小部件中,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()
将tkinter作为tk导入
root=tk.tk()
txt=tk.Text(根)
txt.bind(“”,lambda事件:打印(“o”))
txt.bind(“”,lambda事件:打印(“O”))
txt.pack()
root.mainloop()
如何防止Ctrl+O添加换行符?

根据并返回文本字符串“break”可以防止出现这种情况,就像使用
返回“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()
将tkinter作为tk导入
root=tk.tk()
def ctrl_o(事件):
打印(“o”)
返回“中断”
txt=tk.Text(根)
txt.bind(“”,ctrl\u o)
txt.bind(“”,ctrl\u o)
txt.pack()
root.mainloop()
但是,使用
lambda
时,我无法
根据返回“break”

,返回文本字符串“break”可以防止这种情况发生,就像在使用
返回“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()
将tkinter作为tk导入
root=tk.tk()
def ctrl_o(事件):
打印(“o”)
返回“中断”
txt=tk.Text(根)
txt.bind(“”,ctrl\u o)
txt.bind(“”,ctrl\u o)
txt.pack()
root.mainloop()

使用
lambda
但是我无法
返回“break”

您可以像这样使用
lambda
txt.bind(“”,lambda事件:“break”)
您可以像这样使用
lambda
txt.bind(“”,lambda事件:“break”)