Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # https://www.reddit.com/r/learnpython/comments/4yx1e9/tkinter_help/
- #
- from tkinter import *
- # --- constants ---
- LARGE_FONT= ("Lato", 12)
- MID_FONT= ("Lato", 10)
- # --- database ---
- army_list = []
- # --- functions ---
- def insert_data():
- army_list.append([
- unit_name.get(),
- points_cost.get(),
- fight.get(),
- strength.get(),
- wounds.get(),
- courage.get(),
- attacks.get(),
- might.get(),
- will.get(),
- fate.get(),
- ])
- print(army_list)
- points = 0
- for index_row, row in enumerate(army_list, 4):
- print('row:', row)
- for index_col, element in enumerate(row, 0):
- print(index_col, index_row)
- l = Label(Final_Army, text=element)
- l.grid(row=index_row, column=index_col)
- l = Label(Units, text=element)
- l.grid(row=index_row, column=index_col)
- points += row[9]
- l = Label(Final_Army, text=points, font=LARGE_FONT)
- l.grid(row=82, column=10)
- def clear_entries():
- unit_name.set('')
- points_cost.set('')
- fight.set('')
- strength.set('')
- wounds.set('')
- attacks.set('')
- might.set('')
- will.set('')
- fate.set('')
- courage.set('')
- def clear_text():
- army_name.set('')
- def raise_frame(frame):
- frame.tkraise()
- # --- main ---
- root = Tk()
- Home = Frame(root)
- New_Army = Frame(root)
- Load_Army = Frame(root)
- Units = Frame(root)
- Unit_Creator = Frame(root)
- Construct_Army = Frame(root)
- Final_Army = Frame(root)
- for frame in (Home, New_Army, Units, Unit_Creator, Construct_Army, Final_Army):
- frame.grid(row=0, column=0, sticky='news')
- # --- Home Frame ---
- l = Label(Home, text="Home", font=LARGE_FONT)
- l.grid(row=1, column=1, columnspan=3)
- b = Button(Home, text="New Game", command=lambda: raise_frame(New_Army))
- b.grid(row=3, column=3)
- b = Button(Home, text="Quit")
- b.grid(row=4, column=3)
- # --- New Army Frame ---
- army_name = StringVar()
- l = Label(New_Army, text="New Army", font=LARGE_FONT)
- l.grid(row=1, column=1, columnspan=4)
- l = Label(New_Army, text="Name Army:")
- l.grid(row=2, rowspan=2, column=1)
- e = Entry(New_Army, textvariable=army_name)
- e.grid(row=2, rowspan=2, column=2, columnspan=2)
- b = Button(New_Army, text="Back", command=lambda: raise_frame(Home) and clear_text())
- b.grid(row=2, column=4)
- b = Button(New_Army, text="Enter",command=lambda: raise_frame(Units) and clear_text())
- b.grid(row=3,column=4)
- # --- Units Frame ---
- l = Label(Units, text="Create Your Units For:", font=LARGE_FONT)
- l.grid(row=1,column=1,columnspan=9)
- l = Label(Units, textvariable=army_name,font=LARGE_FONT)
- l.grid(row=2,column=1,columnspan=9)
- headers = ("Name", "Points Cost", "Fight", "Strength", "Wounds", "Attacks", "Might", "Will", "Fate")
- for index_col, name in enumerate(headers):
- l = Label(Units, text=name+':', font=MID_FONT)
- l.grid(row=3, column=index_col)
- b = Button(Units, text="Add Unit", command=lambda: raise_frame(Unit_Creator))
- b.grid(row=80,column=1,columnspan=9)
- b = Button(Units, text="Back", command=lambda: raise_frame(New_Army))
- b.grid(row=81,column=1,columnspan=9)
- b = Button(Units, text="Construct Your Army", command=lambda: raise_frame(Final_Army))
- b.grid(row=82,column=1,columnspan=9)
- # --- Unit Creator Frame ---
- l = Label(Unit_Creator, text="Create a Unit:", font=LARGE_FONT)
- l.grid(row=1,column=1, columnspan=3)
- unit_name = StringVar()
- l = Label(Unit_Creator, text="Name:")
- l.grid(row=2,column=1)
- e = Entry(Unit_Creator, textvariable=unit_name)
- e.grid(row=2,column=2)
- points_cost = IntVar()
- l = Label(Unit_Creator, text="Points Cost:")
- l.grid(row=3,column=1)
- e = Entry(Unit_Creator, textvariable=points_cost)
- e.grid(row=3,column=2)
- fight = IntVar()
- l = Label(Unit_Creator, text="Fight:")
- l.grid(row=4,column=1)
- e = Entry(Unit_Creator, textvariable=fight)
- e.grid(row=4,column=2)
- strength = IntVar()
- l = Label(Unit_Creator, text="Strength:")
- l.grid(row=5,column=1)
- e = Entry(Unit_Creator, textvariable=strength)
- e.grid(row=5,column=2)
- wounds = IntVar()
- l = Label(Unit_Creator, text="Wounds:")
- l.grid(row=6,column=1)
- e = Entry(Unit_Creator, textvariable=wounds)
- e.grid(row=6,column=2)
- courage = IntVar()
- l = Label(Unit_Creator, text="Courage:")
- l.grid(row=7,column=1)
- e = Entry(Unit_Creator, textvariable=courage)
- e.grid(row=7,column=2)
- attacks = IntVar()
- l = Label(Unit_Creator, text="Attacks:")
- l.grid(row=8,column=1)
- e = Entry(Unit_Creator, textvariable=attacks)
- e.grid(row=8,column=2)
- might = IntVar()
- l = Label(Unit_Creator, text="Might:")
- l.grid(row=9,column=1)
- e = Entry(Unit_Creator, textvariable=might)
- e.grid(row=9,column=2)
- will = IntVar()
- l = Label(Unit_Creator, text="Will:")
- l.grid(row=10,column=1)
- e = Entry(Unit_Creator, textvariable=will)
- e.grid(row=10,column=2)
- fate = IntVar()
- l = Label(Unit_Creator, text="Fate:")
- l.grid(row=11,column=1)
- e = Entry(Unit_Creator, textvariable=fate)
- e.grid(row=11,column=2)
- b = Button(Unit_Creator, text="Back", command=lambda: raise_frame(Units))
- b.grid(row=9,column=3)
- b = Button(Unit_Creator, text="Reset Entries", command=lambda: clear_entries())
- b.grid(row=10,column=3)
- b = Button(Unit_Creator, text="Add The Unit To Data-Base", command=lambda: insert_data())
- b.grid(row=11,column=3)
- # --- Final Army Frame ---
- l = Label(Final_Army, text="Your Final Army",font=LARGE_FONT)
- l.grid(row=1,column=1,columnspan=10)
- b = Button(Final_Army, text="Back", command=lambda: raise_frame(Units))
- b.grid(row=80,column=10)
- b = Button(Final_Army, text="Enter", command=lambda: raise_frame(Home))
- b.grid(row=81,column=10)
- # --- start ---
- raise_frame(Home)
- root.mainloop()
Add Comment
Please, Sign In to add comment