In Python tkinter, I want to get the value from an Entry widget that is in one function and use that value in another function, but I am unable to do so. Here is my code:
def login():
print("This is your username: " username_entry.get())
print("This is your password: " password_entry.get())
def login_screen()
username_label = Label(root, text="Username", font=6)
username_label.grid(row=0, column=0, pady=5, padx=80)
username_entry = Entry(root, font=6)
username_entry.grid(row=1, column=0, pady=5, padx=80)
password_label = Label(root, text="Password", font=6)
password_label.grid(row=2, column=0, pady=5, padx=80)
password_entry = Entry(root, font=6)
password_entry.grid(row=3, column=0, pady=5, padx=80)
login_button = Button(root, text="Login",font=3, command=login)
login_button.grid(row=7, column=0, pady=(10,5), padx=80)
CodePudding user response:
If you mean that you just want the entries available to the login() function, you can pass them in as parameters:
def login(username_entry, password_entry):
print("This is your username: " username_entry.get())
print("This is your password: " password_entry.get())
def login_screen()
username_label = Label(root, text="Username", font=6)
username_label.grid(row=0, column=0, pady=5, padx=80)
username_entry = Entry(root, font=6)
username_entry.grid(row=1, column=0, pady=5, padx=80)
password_label = Label(root, text="Password", font=6)
password_label.grid(row=2, column=0, pady=5, padx=80)
password_entry = Entry(root, font=6)
password_entry.grid(row=3, column=0, pady=5, padx=80)
login_button = Button(root, text="Login",font=3,
command=lambda: login(username_entry, password_entry))
login_button.grid(row=7, column=0, pady=(10,5), padx=80)
Here I've used a lambda to defer the execution of the login function.
CodePudding user response:
You should return values that you want to use in other place. or use a class, or a global variable.
