【发布时间】:2018-06-08 16:53:24
【问题描述】:
我想要创建一个“输入姓名”条目,向用户打印欢迎消息。我最近发布了关于如何在 tkinter 中切换帧的帮助。我想通了,解决了这个问题。
但是,现在我想切换帧并在点击按钮时将条目打印到标签。我的代码中没有收到任何错误,但是 returnEntry() 函数没有做任何事情。它不会提升框架,我认为它也不会检索条目文本。(没有returnEntry() 函数,框架确实会提升框架,但使用代码它不会。这是有道理的还是我把事情复杂化了?
代码如下:
def show_frame(frame):
frame.tkraise()
def returnEntry():
result=NameEntry.get()
Label3.config(text=result)
def WelcomeName():
show_frame(f3)
returnEntry()
f1 = Frame(root)
f2 = Frame(root)
f3 = Frame(root)
f4 = Frame(root)
for frame in (f1, f2, f3, f4):
frame.config(width=500,height=500, bg="light blue")
frame.place(relx=0.5,rely=0.5,anchor="center")
#First Page
Button(f1, text='Click to Play', command=lambda: show_frame(f2)).place(relx=0.5,rely=0.5,anchor="center")
Label(f1, text='Magic 8 Ball', fg="White", bg="dark blue",
font="Veranda 19").place(relx=0.5,rely=0.20,anchor="center")
#Second page
Label(f2, text='Enter your name:',fg="White", bg="dark blue",
font="veranda 17").place(relx=0.5,rely=0.40,anchor="center")
NameEntry=Entry(f2,font="veranda 15").place(relx=0.5,rely=0.5,anchor="center")
Button2=Button(f2, text='Continue', font="veranda 15",
command=lambda: returnEntry).place(relx=0.5,rely=0.60,anchor="center")
#Third Page
Label3=Label(f3,text="",bg="light blue",font="veranda 15").place(relx=0.5,rely=0.35,anchor="center")
Label4=Label(f3, text="Ask me a yes or no question and reveal the truth" , bg="light blue",font="veranda 15")
Label4.place(relx=0.5,rely=0.45,anchor="center")
QuestionEntry=Entry(f3, font="veranda 15").place(relx=0.5,rely=0.52,anchor="center")
Button(f3, text='Ask away', command=lambda: show_frame(f4)).place(relx=0.5,rely=0.6,anchor="center")
对不起,草率的代码等等......
【问题讨论】: