Windows上下文菜单中的Tkinter快捷方式

问题描述

我有一个菜单,该菜单tkinter应用程序中显示为上下文菜单

rmenu = tk.Menu(None,tearoff=0,takefocus=0)
# add some commands here
rmenu.add_command(label="copy",copyfunction,accelerator="Shift-C")
rmenu.bind("<Shift-KeyPress-C>",copyfunction)                       # this doesn't work on windows!

我在此上下文菜单中定义了命令的快捷方式,然后,当我尝试通过在 windows 上键入<Shift> + <C>来运行命令时,它没有工作。其实我会发出哔哔声。

在这种情况下是否可以定义快捷方式?

更新:

我什至尝试使用以下方法在程序中生成事件:

rmenu.event_generate("<Shift-KeyPress-C>",when="tail")

但是没有调用函数copyfunction

PS:这在Linux上有效

解决方法

bindroot的键盘快捷键。只有带有focus的内容才能监听键绑定。上下文菜单多长时间关注一次?通过在bind_all上使用root,任何具有focus的东西都会触发键绑定。

root.bind_all("<Shift-C>",copyfunction)