从python表单获取输出时遇到问题

从python表单获取输出时遇到问题,python,tkinter,Python,Tkinter,我在获取此表单的输出时遇到问题,我似乎无法确定它出了什么问题 from tkinter import * def Button_to_text(): firstname_info = firstname.get() lastname_info = lastname.get() age_info = age.get() print(firstname_info,lastname_info,age_info) screen = Tk() screen.geome

我在获取此表单的输出时遇到问题,我似乎无法确定它出了什么问题

from tkinter import *

def Button_to_text():
    firstname_info = firstname.get()
    lastname_info = lastname.get()
    age_info = age.get()
    print(firstname_info,lastname_info,age_info) 

screen = Tk()
screen.geometry("500x500")
screen.title("python_form")
heading = Label(text = "Demo Form",bg = "orange", fg="black",width = "500") 
heading.pack()

firstname_text = Label(text="firstname")
lastname_text = Label(text="lastname")
age_text = Label(text="age")
firstname_text.place(x=60, y= 40)
lastname_text.place(x=60,y=80)
age_text.place(x=60,y=120)

firstname = StringVar()
lastname = StringVar()
age = IntVar()

firstname_entry = Entry(textvariable = firstname)
lastname_entry = Entry(textvariable = lastname)
age_entry = Entry(textvariable = age)

firstname_entry.place(x=160, y=40)
lastname_entry.place(x=160,y=80)
age_entry.place(x=160,y=120)

register = Button(text = "register", width= "30",height ="2", command = Button_to_text())
register.place(x=50,y=290)
我学习了一个教程,我的计算机老师帮不上忙,因为他不懂python。另外,我的朋友似乎无法识别问题,也没有出现错误,因此我知道这是一个逻辑错误,我也无法确定如何执行步骤,以便检查变量

谢谢所有能帮忙的人

您的代码有两个问题:

  • 您必须使用
    mainloop
    保持窗口连续显示

  • 将任何函数传递给
    按钮
    作为参数时,不应使用括号
    ()

  • 注意:如果函数有自己的参数,则在将其传递给
    按钮时,必须使用
    lambda
    。但是在您的例子中,您可以简单地删除括号
    ()

    以下是固定的代码:

    from tkinter import *
    
    
    def Button_to_text():
        firstname_info = firstname.get()
        lastname_info = lastname.get()
        age_info = age.get()
        print(firstname_info, lastname_info, age_info)
    
    
    screen = Tk()
    screen.geometry("500x500")
    screen.title("python_form")
    heading = Label(text="Demo Form", bg="orange", fg="black", width="500")
    heading.pack()
    
    firstname_text = Label(text="firstname")
    lastname_text = Label(text="lastname")
    age_text = Label(text="age")
    firstname_text.place(x=60, y=40)
    lastname_text.place(x=60, y=80)
    age_text.place(x=60, y=120)
    
    firstname = StringVar()
    lastname = StringVar()
    age = IntVar()
    
    firstname_entry = Entry(textvariable=firstname)
    lastname_entry = Entry(textvariable=lastname)
    age_entry = Entry(textvariable=age)
    
    firstname_entry.place(x=160, y=40)
    lastname_entry.place(x=160, y=80)
    age_entry.place(x=160, y=120)
    
    register = Button(text="register", width="30", height="2", command=Button_to_text)
    register.place(x=50, y=290)
    
    screen.mainloop()
    
    注意:

  • 作为一种良好的做法,您应该始终在函数名称中使用小写字母,例如:
    def button_to_text():

  • 您应该始终
    导入
    tkinter作为tk
    而不是
    从tkinter导入所有
    *
    。这总是一个好的做法。您需要在程序中做的唯一更改是,您需要在属于
    tkinter
    的每个项目之前使用
    tk.
    。如下所示:
    screen=tk.tk()


  • 欢迎来到Stackoverflow!为了帮助他人更好地解决您的问题,请在您的帖子中分享更多关于您的问题的内容。你想做什么?这能回答你的问题吗?惊人的谢谢我知道某些实践(常数的大写),但我不知道函数的小写,谢谢你为我强调这一点。