请帮助将热键分配给顶部条目菜单“OPEN”。
import tkinter
def fileOpen():
print('qwerty')
def makeMenu(parent):
top = tkinter.Menu(parent)
parent.config(menu = top)
file = tkinter.Menu(top, tearoff = False)
file.add_command(label = 'Open...', command = fileOpen, accelerator = 'ctrl+o')
top.add_cascade(label = 'File', menu = file)
#top.bind_class(top, '<Control-Key-o>', fileOpen)
root = tkinter.Tk()
makeMenu(root)
root.mainloop()
我需要按“CTRL + O”运行函数“fileOpen”
请您参考如下方法:
你需要:
将
<fileOpen绑定(bind)到根窗口 (root) 而不是菜单栏 (top)。让
fileOpen接受一个参数,当您按下 Ctrl+o 时,该参数将被发送给它。
下面是解决这些问题的脚本版本:
import tkinter
######################
def fileOpen(event):
######################
print('qwerty')
def makeMenu(parent):
top = tkinter.Menu(parent)
parent.config(menu = top)
file = tkinter.Menu(top, tearoff = False)
file.add_command(label = 'Open...', command = fileOpen, accelerator = 'ctrl+o')
top.add_cascade(label = 'File', menu = file)
root = tkinter.Tk()
############################################
root.bind_all('<Control-Key-o>', fileOpen)
############################################
makeMenu(root)
root.mainloop()
我改的东西在评论区。
