import team import scenario import terrain import tkinter as tk from tkinter import ttk Screen = ( team.TeamsPage, terrain.TerrainsPage, scenario.ScenarioPage ) class App(tk.Tk): def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) tk.Tk.wm_title(self, "AoS Worlds Pairing Assistant") tk.Tk.option_add(self, "*tearOff", False) container = ttk.Frame(self, padding="100 100") container.pack() container.columnconfigure(0, minsize=700, weight=1) container.rowconfigure(0, minsize=500, weight=1) self.frames = {} for F in Screen: frame = F(container, self) self.frames[F] = frame frame.grid(column=0, row=0, sticky="nsew") for child in frame.winfo_children(): child.grid_configure(padx=5, pady=5) self.makeMenu() self.showFrame(team.TeamsPage) def makeMenu(self): menubar = tk.Menu(self) menuScenarios = tk.Menu(menubar) menubar.add_cascade(menu=menuScenarios, label="Scenarios") menuScenarios.add_command(label="New")#, command=scenario.getScreen) menuScenarios.add_command(label="New from CSV")#, command=scenario.getScreen) menuScenarios.add_command(label="Load")#, command=scenario.getScreen) menuConfig = tk.Menu(menubar) menubar.add_cascade(menu=menuConfig, label="Configuration") menuConfig.add_command(label="Teams", command=lambda: self.showFrame(team.TeamsPage)) menuConfig.add_command(label="Terrains", command=lambda: self.showFrame(terrain.TerrainsPage)) self['menu'] = menubar def showFrame(self, screen): frame = self.frames[screen] frame.tkraise() app = App() app.mainloop()