我在Python 3中创建了一个菜单栏,我想知道如何向它添加键盘快捷键和加速键。比如按F键打开文件菜单什么的
通过一些挖掘,我发现了“underline=”属性,但它似乎在Python 3中不起作用。当我尝试它时,它不起作用,我找到的唯一文档是早期版本的Python。
menubar = Menu(master)
filemenu = Menu(menubar, tearoff=0)
.....
menubar.add_cascade(label="File", underline=0, menu=filemenu)
有没有办法在Python 3中使用tkinter来做这些事情?
2条答案
按热度按时间m528fe3b1#
考虑阅读(http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm)
你必须将你的小部件绑定到一个事件到你的函数:
键盘事件被发送到当前拥有键盘焦点的小部件。您可以使用focus_set方法将焦点移动到小部件:
捕获键盘事件
如果您运行这个脚本,您会发现您必须在框架中单击,然后它才会开始接收任何键盘事件。
不久前,我按照这个指南实现了一个与我的一个函数绑定的cnc +f:
对于你的文件菜单,你可能需要考虑实现加速器:
对于菜单选项,请记住使用ALT后跟OptionName的第一个字母
文件菜单= ALT后跟f工具菜单= ALT后跟t等等
希望这能提供有用的
chy5wohz2#
有没有一种方法可以让框架在不点击框架的情况下接收事件?如果我滚动到框架上点击它,我已经花了时间去那里,还不如直接点击按钮,而不是使用快捷键。
答案是将整个root/master/window绑定到一个keybinding,这样每当你按下那个键时,就会调用一个函数来完成你的任务。
按Alt显示下划线。Alt+H,X打开帮助菜单并激活退出项。