<menu_item>.add_command()
在 Tkinter 中,我们需要一个字符串作为参数来构建菜单栏,该字符串accelerator
将为命令创建热键绑定。
我创建了一个方法,它检查用户的平台是 Mac 还是其他,如果是,则返回Command
与其他键组合的键字符串。
但它不起作用->菜单正在构建,如果我点击菜单项它正在工作,但不能使用热键。虽然我可以看到⌘</kbd> + N in the menu..
我的第一个想法是,在self.hot_key()
作为参数传递时不会调用该方法..
import sys
import Tkinter
class app(object):
def __init__(self):
self.gui = Tkinter.Tk()
self.gui.minsize(width=640, height=320)
menu = Tkinter.Menu(self.gui)
filemenu = Tkinter.Menu(menu, tearoff=0)
filemenu.add_command(
label = 'New',
command = self.New,
accelerator = self.hot_key('n')
)
menu.add_cascade(
label = 'File',
menu = filemenu
)
self.gui.config(menu=menu)
self.text = Tkinter.Text(self.gui)
self.text.pack(expand=Tkinter.YES, fill=Tkinter.BOTH)
def hot_key(self, *keys):
super_key = 'Command' if sys.platform == 'darwin' else 'Control'
return '{super}+{keys}'.format(super=super_key, keys='+'.join(keys))
def New(self):
print "I'm working!"
App = app()
App.gui.mainloop()