繁体   English   中英

我无法从 python 表单获取输出

[英]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。 再加上我的朋友们似乎无法确定问题,也没有出现错误,所以我知道这是一个逻辑错误,我也无法弄清楚如何步骤,所以我可以检查变量
感谢任何能提供帮助的人。

您的代码有两个问题

  1. 您必须使用主循环来保持mainloop连续显示。

  2. 在将任何 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()

笔记:

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

  2. 而且您应该始终import tkinter as tk而不是import all * from tkinter 这始终是一个好习惯。 您需要在程序中做的唯一更改是您需要使用tk. 在属于tkinter的每个项目之前。 像这样: screen = tk.Tk()

暂无
暂无

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

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