轉載
原文地址:https://blog.csdn.net/weixin_38428980/article/details/81225731
一般情況下,事件處理都是下面這樣的
#coding=utf-8 import Tkinter def handler(): '''事件處理函數''' print "handler" if __name__=='__main__': root = Tkinter.Tk() # 通過中介函數handlerAdapotor進行command設置 btn = Tkinter.Button(text=u'按鈕', command=handler) btn.pack() root.mainloop()
但如果handler()函數需要參數該怎么辦呢,很簡單,使用lambda
#coding=utf-8 import Tkinter def handler(a, b, c): '''事件處理函數''' print "handler", a, b, c if __name__=='__main__': root = Tkinter.Tk() # 通過中介函數handlerAdapotor進行command設置 btn = Tkinter.Button(text=u'按鈕', command=lambda : handler(a=1, b=2, c=3)) btn.pack() root.mainloop()
但對於想使用event的情況,像btn.bind("<Button-1>", handler),又該怎么辦呢,如下:
#coding=utf-8 import Tkinter def handler(event, a, b, c): '''事件處理函數''' print event print "handler", a, b, c if __name__=='__main__': root = Tkinter.Tk() btn = Tkinter.Button(text=u'按鈕') # 通過中介函數handlerAdaptor進行事件綁定 btn.bind("<Button-1>",lambda event:handle(1, 2, 3)) btn.pack() root.mainloop()