【发布时间】:2021-11-25 01:32:00
【问题描述】:
我正在使用加速器在 Tkinter 中制作菜单栏:
menubar = tk.Menu(window)
file_menu = tk.Menu(menubar)
menubar.add_cascade(label='File', menu=file_menu)
window.config(menu=menubar)
file_menu.add_command(label='Open resource pack', command=openPack, accelerator='Cmd+o' if IS_MAC else 'Ctrl+o')
window.bind_all('<M1-o>' if IS_MAC else '<Control-o>', openPack)
file_menu.add_command(label='Copy original pack', command=copyOriginalPack, accelerator='Shift+Cmd+c' if IS_MAC else 'Shift+Ctrl+c')
window.bind_all('<M1-C>' if IS_MAC else '<Control-C>', copyOriginalPack)
但是对于Copy original pack 选项,组合键是Shift + Command + C。加速器只在菜单栏中显示组合键,并没有实际运行命令,所以我必须手动绑定到窗口。
如果我没记错的话,要绑定 Shift + Command + C 我只需要说 Control+C 并将 C 设为大写,因为Shift。
但我无法绑定 Shift。如果我单击菜单选项,它会起作用,但组合键不起作用。它适用于没有 Shift
的其他选项【问题讨论】:
-
是单独绑定Shift还是Shift+c?在后一种情况下,它只是 C(“c”大写)。
-
@DYZ 我要绑定 Shift + Cmd + C(或者其他平台上的 Shift + Ctrl + C)
-
Shift+c 就是“C 大写”。你应该绑定 Ctrl + C。
-
但这就是我所做的。我在 macOS 上绑定了
Control + C或Command + C
标签: python-3.x tkinter key-bindings