Tkinter-如何在按下按钮时制作弹出框

时间:2018-07-21 11:55:34

标签: python tkinter

我对Python还是很陌生,对自己的工作几乎一无所知。我在问一个与学校项目有关的问题。

我决定制作一款基于场景的游戏,例如“选择自己的冒险”之类的游戏,并且对如何引入单击时会弹出的另一帧感到困惑。到目前为止,这是我的程序,我想知道如何引入一个新的弹出框,而不是一个重叠的框,而是当按下开始游戏按钮时弹出的框。

from tkinter import *
from tkinter import messagebox
win = Tk()
win.title('Survival Game')
win.geometry("500x500")
win.resizable(0,0)
win.config(bg = 'deep sky blue', cursor='pirate')


l = Label (win, fg = 'yellow', bg = 'deep sky blue',  font=('Chinyen',24),text = 'Welcome to Survival')  
l.pack_propagate(0)
l.pack(side = TOP)

a1=Button(win, text = ('Start Game'),font =('Chinyen', 15),bg='grey',fg='yellow', height=2, width=30)
a1.pack(pady=50)

def Quit():
  answer = messagebox.askokcancel('Quit', '      Are you sure?')
  if answer:
     win.destroy()
a2=Button(win, text = ('Exit'), font =('Chinyen', 15), bg='grey',fg='yellow',height=2,width=30, command = Quit)
a2.pack()
win.mainloop()

我已经阅读了有关TopLevel小部件的内容,但是不确定它是什么并且不知道它是如何工作的。我希望发现如何将其合并到我现有的代码中。

1 个答案:

答案 0 :(得分:0)

我已经对您的代码进行了更改。

我为“开始游戏按钮”添加了命令属性。该按钮调用函数“ NewWindow”。 NewWindow,然后创建另一个窗口(顶层窗口)。

# New window creation

from tkinter import *
from tkinter import messagebox
win = Tk()
win.title('Survival Game')
win.geometry("500x500")
win.resizable(0,0)
win.config(bg = 'deep sky blue', cursor='pirate')


l = Label (win, fg = 'yellow', bg = 'deep sky blue',  font=('Chinyen',24),text = 'Welcome to Survival')  
l.pack_propagate(0)
l.pack(side = TOP)

def NewPage():
    print("New Page")
    win2 = Toplevel(win)
    win2.title('Survival Game')
    win2.geometry("500x500")
    win2.resizable(0,0)
    win2.config(bg = 'red', cursor='pirate')

    label1 = Label(win2, font =('Chinyen', 15),bg='grey',fg='yellow', height=2, width=30, text="New Window").grid()
    win2.mainloop()

a1=Button(win, text = ('Start Game'),font =('Chinyen', 15),bg='grey',fg='yellow', height=2, width=30, command=lambda:NewPage())
a1.pack(pady=50)

def Quit():
  answer = messagebox.askokcancel('Quit', '      Are you sure?')
  if answer:
     win.destroy()
a2=Button(win, text = ('Exit'), font =('Chinyen', 15), bg='grey',fg='yellow',height=2,width=30, command = Quit)
a2.pack()
win.mainloop()