【问题标题】:How to bind a combination of keys to a method?如何将键组合绑定到方法?
【发布时间】:2024-08-26 04:10:03
【问题描述】:

如何将 Ctrl + Shift + S 绑定到方法?基于this,我尝试了以下代码,但它不起作用(打印语句未运行):

import tkinter as tk

def key(event=None):
    print("It works!")

root = tk.Tk()

frame = tk.Frame(root, width=100, height=100)
frame.focus_set()
frame.bind('<Control-Shift-s>', key)
frame.pack()

root.mainloop()

如果可能的话,我还想知道如何绑定组合键的一般答案。

【问题讨论】:

    标签: python tkinter tk key-bindings


    【解决方案1】:

    当你按住Shift时,s变成S

    因此,您的绑定永远不会触发。要解决此问题,您只需将绑定更改为:

    frame.bind('<Control-Shift-S>', key)
    

    【讨论】:

    • 这确实有效,谢谢!我还会添加frame.bind('&lt;Control-Shift-s&gt;', key),因为它不区分大小写,你会碰巧知道比这样重复更好的方法吗?
    • 显然我确实需要根据this使用两个绑定。