【发布时间】:2012-10-24 22:25:27
【问题描述】:
我正在尝试制作一个游戏,在游戏结束时我希望它弹出一个窗口,上面写着“你是”,然后当你关闭该窗口时,或者可能在某个时间限制后,它会打开另一个窗口带有字符的窗口是我尝试过的:
def Youare():
You_are= Toplevel()#I have tried making this Tk() as well
You_are.geometry('+700+100')
says = Label(You_are,text ='You are....',font=('Helvetica',74))
says.pack(side=BOTTOM)
You_are.mainloop()#If I take this out both windows display at the same time
def Percy():
Percy= Toplevel()
Percy.geometry('450x450')
says = Label(Percy,text ='We were just looking at maps')
says.pack(side=BOTTOM)
img = ImageTk.PhotoImage(Image.open('C:/Users/Geekman2/Pictures/Pictures/Percy.jpg'))
image1 = Label(Percy,image=img)
image1.pack()
Percy.mainloop()
Youare()
Percy()
如果您使用主循环运行 Youare,则 Percy() 将在主窗口关闭之前运行,如果您在没有主循环的情况下运行它,它们会同时显示,从而消除悬念。我做错了什么?
【问题讨论】:
-
你真的不应该给变量 (
Percy) 赋予与函数相同的名称。这不是你的问题,但无论如何你肯定想解决它。 -
同时,听起来您编写的代码已经完成了您想要的工作。当然,在你改变它之后,它不再做你想做的事。所以不要那样做。如果你试图做一些更复杂的事情——例如,在
You_are对象上设置一个“关闭”函数,它会导致Percy()被触发——你必须为此编写一个事件处理程序; TkInter 无法猜测您要触发什么行为的事件。
标签: python python-2.7 tkinter