aosworlds-pairing/main.py

58 lines
1.8 KiB
Python
Raw Permalink Normal View History

2023-02-14 19:54:53 +00:00
import team
import scenario
import terrain
2023-02-15 23:19:12 +00:00
import tkinter as tk
2023-02-14 19:54:53 +00:00
from tkinter import ttk
2023-02-15 23:19:12 +00:00
Screen = (
team.TeamsPage,
terrain.TerrainsPage,
scenario.ScenarioPage
)
2023-02-14 19:54:53 +00:00
2023-02-15 23:19:12 +00:00
class App(tk.Tk):
2023-02-14 19:54:53 +00:00
def __init__(self, *args, **kwargs):
2023-02-15 23:19:12 +00:00
tk.Tk.__init__(self, *args, **kwargs)
tk.Tk.wm_title(self, "AoS Worlds Pairing Assistant")
tk.Tk.option_add(self, "*tearOff", False)
2023-02-14 19:54:53 +00:00
2023-02-18 20:15:31 +00:00
container = ttk.Frame(self, padding="100 100")
2023-02-14 19:54:53 +00:00
container.pack()
2023-02-19 19:19:58 +00:00
container.columnconfigure(0, minsize=700, weight=1)
container.rowconfigure(0, minsize=500, weight=1)
2023-02-14 19:54:53 +00:00
self.frames = {}
for F in Screen:
frame = F(container, self)
self.frames[F] = frame
2023-02-15 23:19:12 +00:00
frame.grid(column=0, row=0, sticky="nsew")
2023-02-14 19:54:53 +00:00
for child in frame.winfo_children():
2023-02-15 23:19:12 +00:00
child.grid_configure(padx=5, pady=5)
2023-02-14 19:54:53 +00:00
self.makeMenu()
self.showFrame(team.TeamsPage)
def makeMenu(self):
2023-02-15 23:19:12 +00:00
menubar = tk.Menu(self)
2023-02-14 19:54:53 +00:00
2023-02-15 23:19:12 +00:00
menuScenarios = tk.Menu(menubar)
2023-02-14 19:54:53 +00:00
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)
2023-02-15 23:19:12 +00:00
menuConfig = tk.Menu(menubar)
2023-02-14 19:54:53 +00:00
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()