When a user hits the button on the Tkinter Button widget, the command option is activated. In some situations, it's necessary to supply parameters to the connected command function. In this case, the procedures for both approaches are identical; the only thing that has to vary is the order in which you use them.
Method 1: Pass Arguments to Tkinter Button using the lambda function
Import theTkinter package and create a root window. Give the root window a title(using title()) and dimension(using geometry()), now Create a button using (Button()). Use mainloop() to call the endless loop of the window.lambda function creates a temporary simple function to be called when the Button is clicked.
Python3# importing tkinterimporttkinterastk# defining functiondeffunc(args):print(args)# create root windowroot=tk.Tk()# root window title and dimensionroot.title("Welcome to GeekForGeeks")root.geometry("380x400")# creating buttonbtn=tk.Button(root,text="Press",command=lambda:func("See this worked!"))btn.pack()# running the main looproot.mainloop()
Output:
using lambdaMethod 2: Pass Arguments to Tkinter Button using partial
Import theTkinter package and create a root window. Give the root window a title(using title()) and dimension(using geometry()), now Create a button using (Button()). Use mainloop() to call the endless loop of the window. command=partial returns a callable object that behaves like a func when it is called.
Python3# importing necessary librariesfromfunctoolsimportpartialimporttkinterastk# defining functiondeffunction_name(func):print(func)# creating root windowroot=tk.Tk()# root window title and dimensionroot.title("Welcome to GeekForGeeks")root.geometry("380x400")# creating buttonbtn=tk.Button(root,text="Click Me",command=partial(function_name,"Thanks, Geeks for Geeks !!!"))btn.pack()# running the main looproot.mainloop()
Output:
using partial