在创建菜单栏时,我注意到 Ctrl + s 快捷键/加速器可以正常调用“保存”菜单,但 Ctrl + S (或 Ctrl + s 且CAPS打开)不会调用“保存”菜单。以下是代码。
$fileMenu add command -label "Save As" -command { saveOperation } -underline 1 -accelerator "Ctrl-s"
是否可以为菜单项设置不区分大小写的加速器,或者为两种情况下捕获按键的菜单项设置多个加速器?
答案 0 :(得分:3)
除非我遗漏了某些内容,否则-accelerator
选项只是菜单标签的可视组件。你仍然需要为它创建一个绑定来做某事。因此,要创建不区分大小写的加速器,您可以执行以下操作:
$fileMenu add command -label "Save As" -command {saveOperation} \
-underline 1 -accelerator "Ctrl-s"
# I'm assuming the parent window is where you want the accelerator to work
set w [winfo parent $fileMenu]
bind $w <Control-KeyPress-s> saveOperation ; # lowercase
bind $w <Control-KeyPress-S> saveOperation ; # uppercase