[英]I am having trouble getting outputs from my python form
我无法从这个表格中获得输出,我似乎无法确定它哪里出了问题。
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
连续显示。
在将任何 function 作为参数传递给Button
时,不应使用括号()
。
注意:如果 function 有自己的参数,那么您必须在将其传递给Button
时使用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():
。
而且您应该始终import
tkinter as tk
而不是import
all *
from tkinter
。 这始终是一个好习惯。 您需要在程序中做的唯一更改是您需要使用tk.
在属于tkinter
的每个项目之前。 像这样: screen = tk.Tk()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.