python – Tkinter绑定问题
发布时间:2020-12-20 12:26:43 所属栏目:Python 来源:网络整理
导读:我有这样的事情: from Tkinter import *root = Tk()root.title("Test")def _quit(): root.destroy()m = Menu(root)root.config(menu=m)fm = Menu(m,tearoff=0)m.add_cascade(label="File",menu=fm)fm.add_command(label="Quit",command=_quit,accelerator='
我有这样的事情:
from Tkinter import * root = Tk() root.title("Test") def _quit(): root.destroy() m = Menu(root) root.config(menu=m) fm = Menu(m,tearoff=0) m.add_cascade(label="File",menu=fm) fm.add_command(label="Quit",command=_quit,accelerator='Ctrl+Q') root.bind('<Control-Q>',_quit()) root.bind('<Control-q>',_quit()) root.mainloop() 我的问题是: 解决方法
当您与Tkinter绑定时,通常不会调用您想要绑定的函数.
你应该使用这条线 root.bind('<Control-Q>',_quit) 代替 root.bind('<Control-Q>',_quit()) 注意_quit背后缺少括号. 以下代码应该有效. from Tkinter import * root = Tk() root.title("Test") def _quit(event): root.destroy() m = Menu(root) root.config(menu=m) fm = Menu(m,command=lambda: _quit(None),_quit) root.bind('<Control-q>',_quit) root.mainloop() 编辑: 哎很抱歉,我只在菜单栏中运行了测试退出关键字命令的代码.不是绑定的键命令.在为Tkinter进行绑定时,我非常确定大多数GUI工具包,调用函数时的绑定插入和事件参数.但是,Tkinter命令关键字参数不典型地插入事件.所以你必须通过让命令关键字参数“人工”插入一个无参数的事件(lambda:_quit(None))来妥协.这允许您在两种方案中使用一个功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |