Ich bin neu in Tkinter. Ich möchte ein Hauptmenü erstellen, nachdem ich auf den Button PLAY geklickt habe, sollte es ein neues Fenster mit einer Reihe von Buttons erstellen. Jede Schaltfläche in diesem neuen Fenster sollte ein anderes Fenster erstellen (und das aktuelle Fenster schließen). Aber mein Problem ist, dass wenn ich auf den Button PLAY klicke, öffnet es alle Fenster.tkinter, mehrere Top-Level-Fenster
from tkinter import *
class Choices:
def __init__(self, master):
root.minsize(width=False, height=False)
root['bg'] = 'forest green'
self.master = master
b_color = 'red'
b_width = 30
b_height = 4
b_pady = 10
self.headline = Label(self.master, text='Welcome to Casino', bg='forest green', font=('broadway', 30))
self.headline.grid()
self.buttons_frame = Frame(master, bg='forest green')
self.buttons_frame.grid()
self.b_play = Button(self.buttons_frame, text='PLAY', bg=b_color, width=b_width, height=b_height, command=self.play)
self.b_play.grid(pady=b_pady)
self.b_credits = Button(self.buttons_frame, text='CREDITS', bg=b_color, width=b_width, height=b_height)
self.b_credits.grid(pady=b_pady)
self.b_quit = Button(self.buttons_frame, text='QUIT', command=root.quit, bg=b_color, width=b_width,
height=b_height)
self.b_quit.grid(pady=b_pady)
def play(self):
root.withdraw()
self.pick = Toplevel(self.master)
self.game = GamePick(self.pick)
class GamePick:
def __init__(self, master):
self.master = master
self.buttons_frame = Frame(self.master)
self.buttons_frame.grid()
b_jack = Button(self.buttons_frame, text='Black Jack', bg='snow4', command=self.do_black_jack())
b_jack.grid()
def do_black_jack(self):
root.withdraw()
self.var_bj = Toplevel(self.master)
self.open_bj = BlackJack(self.var_bj)
class BlackJack:
def __init__(self, master):
self.master = master
label = Label(self.master, bg='green', text='It is working')
label.grid()
root = Tk()
my = Choices(root)
root.mainloop()
Grund für den Downvote? Meine Antwort ist korrekt und ich habe das OP-Programm auf meinem Rechner getestet. –