0

我无法从这个表格中获得输出,我似乎无法确定它哪里出了问题。

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

4

1 回答 1

1

您的代码有两个问题:

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

  2. ()在将任何函数Button作为参数传递给 a 时,不应使用括号。

注意:如果函数有自己的参数,那么你将不得不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()

笔记:

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

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

于 2020-04-10T12:13:12.500 回答