我无法从python表单获取输出

问题描述 投票:0回答:1

我在从此表格获取输出时遇到困难,我似乎无法确定出问题的地方。

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。再加上我的朋友似乎无法识别问题,也没有错误出现,所以我知道这是一个逻辑错误,我也无法解决如何执行步骤以便可以检查变量感谢任何能提供帮助的人。

python tkinter
1个回答
1
投票

您的代码中有两个问题

  1. 您必须使用mainloop来保持窗口连续显示。

  2. 在将任何函数作为参数传递给()时,请勿使用括号Button

注:并且,如果函数具有自己的参数,则必须在将lambda传递给Button时使用它。但是,根据您的情况,只需删除括号()

这里是固定代码:

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()
© www.soinside.com 2019 - 2024. All rights reserved.