【问题标题】:Tkinter: How to bind a ShiftTkinter:如何绑定 Shift
【发布时间】: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 + CCommand + C

标签: python-3.x tkinter key-bindings


【解决方案1】:

我通过写&lt;M1-Shift-c&gt;(注意小写c)修复了它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    相关资源
    最近更新 更多