python tkinter .get() returns empty field

Viewed 17

I'm trying to make a login system for Tkinter however when I enter text into the text field and hit the login button the .get() is an empty field and returns an empty result. I have repurposed this code from a previous project and it worked before but not anymore and I'm not sure why however I'm no expert on python or Tkinter. So please if you spot something please let me know thanks.

import tkinter as tk
import socket
from tkinter import ttk
from tkinter.ttk import *
from tkinter import *
from tkinter import messagebox
import urllib.request
from functools import partial
import time
from time import time, sleep
root = tk.Tk()
global errmsg
errmsg = ""
global userID
userID = 0
global uid
uid = ""

def loginpage():
    
    def validateLogin(email, password):
        print("login val")
        global useremail
        useremail = email.get()
        print(useremail)
        userpassword = password.get()
        print(userpassword)
        logindetailvercode = "#logindetails#"
        login_details = [logindetailvercode, useremail, userpassword]
        print(login_details)               

    print("loginpage")
    tkWindow = tk.Tk()  
    tkWindow.geometry('300x150')  
    tkWindow.title('Login')

    #username label and text entry box
    emailLabel = Label(tkWindow, text="Email").grid(row=0, column=0)
    email = StringVar()
    emailEntry = Entry(tkWindow, textvariable=email).grid(row=0, column=1)  
 
    
    #password label and password entry box
    passwordLabel = Label(tkWindow,text="Password").grid(row=1, column=0)  
    password = StringVar()
    passwordEntry = Entry(tkWindow, textvariable=password, show='*').grid(row=1, column=1)  
 
    
    validateLogin = partial(validateLogin, email, password)
    
    #login button
    loginButton = Button(tkWindow, text="Login", command=validateLogin).grid(row=4, column=0)
    def close_window():
        tkWindow.destroy()
    button = Button(tkWindow, text = "Quit", command = close_window).grid(row=5, column=0)
    
    tkWindow.mainloop()
0 Answers
Related