简体   繁体   中英

Python error using Tkinter (.get)

I'm having an issue pulling variable from entry widgets, so far I have done this but I can't find my error. I am using python 3.

from tkinter import *

def main():
    global today,postal,user,expire,cardnum
    root = Tk()
    root.title("Card checker")
    instruction =Label(root, text="Please enter your card details\n")
    namel = Label(root, text="Name: ")
    post = Label(root, text="Postal code: ")
    today_date = Label(root, text="Todays date: ")
    expire_date = Label(root, text="Expiry date ")
    card_number = Label(root, text="Card Number: ")
    date1= ()
    postcode= ()
    name1= ()
    expire1= ()
    cardno = ()

    namel.grid(row=1, column =0)
    post.grid(row=2,  column =0)
    today_date.grid(row=3,  column =0)
    expire_date.grid(row=4,  column =0)
    card_number.grid(row=5,  column =0)
    todaydateE= Entry(root,textvariable=date1)
    postE= Entry(root,textvariable=postcode)
    nameE = Entry(root,textvariable=name1)
    expiredateE= Entry(root,textvariable=expire1)
    cardnumberE= Entry(root,textvariable=cardno)
    nameE.grid(row=1, column =1)
    postE.grid(row=2,  column =1)
    cardnumberE.grid(row=5,  column =1)
    expiredateE.grid(row=4,  column =1)
    todaydateE.grid(row=3,  column =1)

    doneButton = Button(root, text= "Confirm", command=datecheck)
    doneButton.grid(columnspan =2)
    today= date1.get()
    postal= (postcode.get())
    user= name1.get()
    expire= expire1.get()
    cardnum = cardno.get()


def datecheck():
    global today,postal,user,expire,cardnum
    print(postal)

So you weren't using the .get() function correctly. Also you want to make the program so that you .get() something after an event otherwise it will try to get nothing because when the program starts up there will be nothing there. Edited your code so that if you hit the confirm button you'll get whatever is entered into the entry boxes

from tkinter import *

def datecheck():
    global today, postal, user, expire, cardnum
    today = todaydateE.get()
    postal = (postE.get())
    user = nameE.get()
    expire = expiredateE.get()
    cardnum = cardnumberE.get()
    print(postal)

global today, postal, user, expire, cardnum
root = Tk()
root.title("Card checker")
instruction = Label(root, text="Please enter your card details\n")
namel = Label(root, text="Name: ")
post = Label(root, text="Postal code: ")
today_date = Label(root, text="Todays date: ")
expire_date = Label(root, text="Expiry date ")
card_number = Label(root, text="Card Number: ")

namel.grid(row=1, column=0)
post.grid(row=2, column=0)
today_date.grid(row=3, column=0)
expire_date.grid(row=4, column=0)
card_number.grid(row=5, column=0)
todaydateE = Entry(root)
postE = Entry(root)
nameE = Entry(root)
expiredateE = Entry(root )
cardnumberE = Entry(root)
nameE.grid(row=1, column=1)
postE.grid(row=2, column=1)
cardnumberE.grid(row=5, column=1)
expiredateE.grid(row=4, column=1)
todaydateE.grid(row=3, column=1)

doneButton = Button(root, text="Confirm", command=datecheck)
doneButton.grid(columnspan=2)

root.mainloop()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM