【问题标题】:How can I unbind Ctrl - O from Text widget?如何从 Text 小部件中取消绑定 Ctrl - O?
【发布时间】:2017-12-04 01:27:14
【问题描述】:

在文本小部件中 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 添加换行符?

【问题讨论】:

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


    【解决方案1】:

    根据this 和this 返回文字字符串“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"。

    【讨论】:

    • 你可以像这样使用lambda:txt.bind('&lt;Control-o&gt;', lambda event: "break")
    猜你喜欢
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多