简体   繁体   English

使用 Tkinter (.get) 的 Python 错误

[英]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.我正在使用 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.所以你没有正确使用 .get() 函数。 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.此外,您还想制作程序,以便在事件发生后使用 .get() 某些东西,否则它会尝试一无所获,因为当程序启动时,那里什么也没有。 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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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