import team import scenario import terrain from tkinter import * from tkinter import ttk # for child in container.winfo_children(): # child.grid_configure(padx=4, pady=5) Screen = (team.TeamsPage, team.EditTeamPage, terrain.TerrainsPage, scenario.ScenarioPage) class App(Tk): def __init__(self, *args, **kwargs): Tk.__init__(self, *args, **kwargs) Tk.wm_title(self, "AoS Worlds Pairing Assistant") Tk.option_add(self, "*tearOff", False) container = ttk.Frame(self, padding="100 100 100 100") container.pack() container.columnconfigure(0, minsize=500, weight=1) container.rowconfigure(0, minsize=300, weight=1) self.frames = {} for F in Screen: frame = F(container, self) self.frames[F] = frame frame.grid(column=0, row=0, sticky=(N, W, E, S)) for child in frame.winfo_children(): child.grid_configure(padx=4, pady=5) self.makeMenu() self.showFrame(team.TeamsPage) def makeMenu(self): menubar = Menu(self) menuScenarios = 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 = 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()