您可以创建一个函数,该函数接受任意数量的参数,如下所示:
def clickOrEnterSubmit(self, *args): #pre goes here
这称为任意参数列表。调用者可以随意传递任意数量的参数,并且所有参数都将打包到
args元组中。Enter绑定可以传入其1
event对象,而click命令则可以不传入任何参数。
这是一个最小的Tkinter示例:
from tkinter import *def on_click(*args): print("frob called with {} arguments".format(len(args)))root = Tk()root.bind("<Return>", on_click)b = Button(root, text="Click Me", command=on_click)b.pack()root.mainloop()结果,在按下
Enter并单击按钮之后:
frob called with 1 argumentsfrob called with 0 arguments
如果您不希望更改回调函数的签名,则可以将要绑定的函数包装在
lambda表达式中,并 丢弃 未使用的变量:
from tkinter import *def on_click(): print("on_click was called!")root = Tk()# The callback will pass in the Event variable, # but we won't send it to `on_click`root.bind("<Return>", lambda event: on_click())b = Button(root, text="Click Me", command=frob)b.pack()root.mainloop()


