Search code examples
pythontkintertkinter-entry

Tkinter can't get values to the function on button click


So, I try to get the values from inputs (3) and pass them on to a function on a button click.

This is what I have now:

Label(self.master, text="Name").grid(row=0, sticky=W)
    Label(self.master, text="Username").grid(row=1, sticky=W)
    Label(self.master, text="Email").grid(row=2, sticky=W)

    self.e_name = Entry(self.master).grid(row=0, column=1)
    self.e_username = Entry(self.master).grid(row=1, column=1)
    self.e_email = Entry(self.master).grid(row=2, column=1)

    Button(self.master, text="Login", command=self.login_client).grid(row=3, column=1, sticky=E)

And the function:

def login_client(self):
    print(self.e_name.get())

Now, I get this error: AttributeError: 'NoneType' object has no attribute 'get'...

The full code of the file can be found here: https://gist.github.com/RosiersRobin/343c0194fde2e8e3184f24cb5aecac28

I just want the input from the user to be given in the function login_client


Solution

  • Your problem is the .grid() call. grid returns None, so self.e_name will be None. Just change these lines to these ones:

    self.e_name = Entry(self.master)
    self.e_name.grid(row=0, column=1)
    self.e_username = Entry(self.master)
    self.e_username.grid(row=1, column=1)
    self.e_email = Entry(self.master)
    self.e_email.grid(row=2, column=1)