SHOW:
|
|
- or go back to the newest paste.
| 1 | # | |
| 2 | # https://www.reddit.com/r/learnpython/comments/4yx1e9/tkinter_help/ | |
| 3 | # | |
| 4 | ||
| 5 | from tkinter import * | |
| 6 | ||
| 7 | # --- constants --- | |
| 8 | ||
| 9 | LARGE_FONT= ("Lato", 12)
| |
| 10 | MID_FONT= ("Lato", 10)
| |
| 11 | ||
| 12 | # --- database --- | |
| 13 | ||
| 14 | army_list = [] | |
| 15 | points = 0 # now it is global variable | |
| 16 | ||
| 17 | # --- functions --- | |
| 18 | ||
| 19 | def insert_data(): | |
| 20 | global points # I need it to add row[9] to global variable | |
| 21 | ||
| 22 | army_list.append([ | |
| 23 | unit_name.get(), | |
| 24 | points_cost.get(), | |
| 25 | fight.get(), | |
| 26 | strength.get(), | |
| 27 | wounds.get(), | |
| 28 | courage.get(), | |
| 29 | attacks.get(), | |
| 30 | might.get(), | |
| 31 | will.get(), | |
| 32 | fate.get(), | |
| 33 | - | points = 0 |
| 33 | + | |
| 34 | print(army_list) | |
| 35 | - | for index_row, row in enumerate(army_list, 4): |
| 35 | + | |
| 36 | # ---- | |
| 37 | - | print('row:', row)
|
| 37 | + | |
| 38 | row = army_list[-1] | |
| 39 | - | for index_col, element in enumerate(row, 0): |
| 39 | + | index_row = len(army_list)+3 |
| 40 | - | |
| 40 | + | |
| 41 | - | print(index_col, index_row) |
| 41 | + | print('row:', row)
|
| 42 | ||
| 43 | - | l = Label(Final_Army, text=element) |
| 43 | + | for index_col, element in enumerate(row, 0): |
| 44 | - | l.grid(row=index_row, column=index_col) |
| 44 | + | |
| 45 | - | l = Label(Units, text=element) |
| 45 | + | print(index_col, index_row) |
| 46 | - | l.grid(row=index_row, column=index_col) |
| 46 | + | |
| 47 | l = Label(Final_Army, text=element) | |
| 48 | - | points += row[9] |
| 48 | + | l.grid(row=index_row, column=index_col) |
| 49 | l = Label(Units, text=element) | |
| 50 | l.grid(row=index_row, column=index_col) | |
| 51 | ||
| 52 | points += row[9] | |
| 53 | ||
| 54 | l = Label(Final_Army, text=points, font=LARGE_FONT) | |
| 55 | l.grid(row=82, column=10) | |
| 56 | ||
| 57 | ||
| 58 | def clear_entries(): | |
| 59 | unit_name.set('')
| |
| 60 | points_cost.set('')
| |
| 61 | fight.set('')
| |
| 62 | strength.set('')
| |
| 63 | wounds.set('')
| |
| 64 | attacks.set('')
| |
| 65 | might.set('')
| |
| 66 | will.set('')
| |
| 67 | fate.set('')
| |
| 68 | courage.set('')
| |
| 69 | ||
| 70 | ||
| 71 | def clear_text(): | |
| 72 | army_name.set('')
| |
| 73 | ||
| 74 | ||
| 75 | def raise_frame(frame): | |
| 76 | frame.tkraise() | |
| 77 | ||
| 78 | # --- main --- | |
| 79 | ||
| 80 | root = Tk() | |
| 81 | ||
| 82 | Home = Frame(root) | |
| 83 | New_Army = Frame(root) | |
| 84 | Load_Army = Frame(root) | |
| 85 | Units = Frame(root) | |
| 86 | Unit_Creator = Frame(root) | |
| 87 | Construct_Army = Frame(root) | |
| 88 | Final_Army = Frame(root) | |
| 89 | ||
| 90 | for frame in (Home, New_Army, Units, Unit_Creator, Construct_Army, Final_Army): | |
| 91 | frame.grid(row=0, column=0, sticky='news') | |
| 92 | ||
| 93 | # --- Home Frame --- | |
| 94 | ||
| 95 | l = Label(Home, text="Home", font=LARGE_FONT) | |
| 96 | l.grid(row=1, column=1, columnspan=3) | |
| 97 | ||
| 98 | b = Button(Home, text="New Game", command=lambda: raise_frame(New_Army)) | |
| 99 | b.grid(row=3, column=3) | |
| 100 | ||
| 101 | b = Button(Home, text="Quit") | |
| 102 | b.grid(row=4, column=3) | |
| 103 | ||
| 104 | # --- New Army Frame --- | |
| 105 | ||
| 106 | army_name = StringVar() | |
| 107 | ||
| 108 | l = Label(New_Army, text="New Army", font=LARGE_FONT) | |
| 109 | l.grid(row=1, column=1, columnspan=4) | |
| 110 | ||
| 111 | l = Label(New_Army, text="Name Army:") | |
| 112 | l.grid(row=2, rowspan=2, column=1) | |
| 113 | ||
| 114 | e = Entry(New_Army, textvariable=army_name) | |
| 115 | e.grid(row=2, rowspan=2, column=2, columnspan=2) | |
| 116 | ||
| 117 | b = Button(New_Army, text="Back", command=lambda: raise_frame(Home) and clear_text()) | |
| 118 | b.grid(row=2, column=4) | |
| 119 | ||
| 120 | b = Button(New_Army, text="Enter",command=lambda: raise_frame(Units) and clear_text()) | |
| 121 | b.grid(row=3,column=4) | |
| 122 | ||
| 123 | # --- Units Frame --- | |
| 124 | ||
| 125 | l = Label(Units, text="Create Your Units For:", font=LARGE_FONT) | |
| 126 | l.grid(row=1,column=1,columnspan=9) | |
| 127 | ||
| 128 | l = Label(Units, textvariable=army_name,font=LARGE_FONT) | |
| 129 | l.grid(row=2,column=1,columnspan=9) | |
| 130 | ||
| 131 | headers = ("Name", "Points Cost", "Fight", "Strength", "Wounds", "Attacks", "Might", "Will", "Fate")
| |
| 132 | ||
| 133 | for index_col, name in enumerate(headers): | |
| 134 | l = Label(Units, text=name+':', font=MID_FONT) | |
| 135 | l.grid(row=3, column=index_col) | |
| 136 | ||
| 137 | b = Button(Units, text="Add Unit", command=lambda: raise_frame(Unit_Creator)) | |
| 138 | b.grid(row=80,column=1,columnspan=9) | |
| 139 | ||
| 140 | b = Button(Units, text="Back", command=lambda: raise_frame(New_Army)) | |
| 141 | b.grid(row=81,column=1,columnspan=9) | |
| 142 | ||
| 143 | b = Button(Units, text="Construct Your Army", command=lambda: raise_frame(Final_Army)) | |
| 144 | b.grid(row=82,column=1,columnspan=9) | |
| 145 | ||
| 146 | # --- Unit Creator Frame --- | |
| 147 | ||
| 148 | l = Label(Unit_Creator, text="Create a Unit:", font=LARGE_FONT) | |
| 149 | l.grid(row=1,column=1, columnspan=3) | |
| 150 | ||
| 151 | unit_name = StringVar() | |
| 152 | ||
| 153 | l = Label(Unit_Creator, text="Name:") | |
| 154 | l.grid(row=2,column=1) | |
| 155 | e = Entry(Unit_Creator, textvariable=unit_name) | |
| 156 | e.grid(row=2,column=2) | |
| 157 | ||
| 158 | points_cost = IntVar() | |
| 159 | ||
| 160 | l = Label(Unit_Creator, text="Points Cost:") | |
| 161 | l.grid(row=3,column=1) | |
| 162 | e = Entry(Unit_Creator, textvariable=points_cost) | |
| 163 | e.grid(row=3,column=2) | |
| 164 | ||
| 165 | fight = IntVar() | |
| 166 | ||
| 167 | l = Label(Unit_Creator, text="Fight:") | |
| 168 | l.grid(row=4,column=1) | |
| 169 | e = Entry(Unit_Creator, textvariable=fight) | |
| 170 | e.grid(row=4,column=2) | |
| 171 | ||
| 172 | strength = IntVar() | |
| 173 | ||
| 174 | l = Label(Unit_Creator, text="Strength:") | |
| 175 | l.grid(row=5,column=1) | |
| 176 | e = Entry(Unit_Creator, textvariable=strength) | |
| 177 | e.grid(row=5,column=2) | |
| 178 | ||
| 179 | wounds = IntVar() | |
| 180 | ||
| 181 | l = Label(Unit_Creator, text="Wounds:") | |
| 182 | l.grid(row=6,column=1) | |
| 183 | e = Entry(Unit_Creator, textvariable=wounds) | |
| 184 | e.grid(row=6,column=2) | |
| 185 | ||
| 186 | courage = IntVar() | |
| 187 | ||
| 188 | l = Label(Unit_Creator, text="Courage:") | |
| 189 | l.grid(row=7,column=1) | |
| 190 | e = Entry(Unit_Creator, textvariable=courage) | |
| 191 | e.grid(row=7,column=2) | |
| 192 | ||
| 193 | attacks = IntVar() | |
| 194 | ||
| 195 | l = Label(Unit_Creator, text="Attacks:") | |
| 196 | l.grid(row=8,column=1) | |
| 197 | e = Entry(Unit_Creator, textvariable=attacks) | |
| 198 | e.grid(row=8,column=2) | |
| 199 | ||
| 200 | might = IntVar() | |
| 201 | ||
| 202 | l = Label(Unit_Creator, text="Might:") | |
| 203 | l.grid(row=9,column=1) | |
| 204 | e = Entry(Unit_Creator, textvariable=might) | |
| 205 | e.grid(row=9,column=2) | |
| 206 | ||
| 207 | will = IntVar() | |
| 208 | ||
| 209 | l = Label(Unit_Creator, text="Will:") | |
| 210 | l.grid(row=10,column=1) | |
| 211 | e = Entry(Unit_Creator, textvariable=will) | |
| 212 | e.grid(row=10,column=2) | |
| 213 | ||
| 214 | fate = IntVar() | |
| 215 | ||
| 216 | l = Label(Unit_Creator, text="Fate:") | |
| 217 | l.grid(row=11,column=1) | |
| 218 | e = Entry(Unit_Creator, textvariable=fate) | |
| 219 | e.grid(row=11,column=2) | |
| 220 | ||
| 221 | b = Button(Unit_Creator, text="Back", command=lambda: raise_frame(Units)) | |
| 222 | b.grid(row=9,column=3) | |
| 223 | b = Button(Unit_Creator, text="Reset Entries", command=lambda: clear_entries()) | |
| 224 | b.grid(row=10,column=3) | |
| 225 | ||
| 226 | b = Button(Unit_Creator, text="Add The Unit To Data-Base", command=lambda: insert_data()) | |
| 227 | b.grid(row=11,column=3) | |
| 228 | ||
| 229 | # --- Final Army Frame --- | |
| 230 | ||
| 231 | l = Label(Final_Army, text="Your Final Army",font=LARGE_FONT) | |
| 232 | l.grid(row=1,column=1,columnspan=10) | |
| 233 | ||
| 234 | b = Button(Final_Army, text="Back", command=lambda: raise_frame(Units)) | |
| 235 | b.grid(row=80,column=10) | |
| 236 | ||
| 237 | b = Button(Final_Army, text="Enter", command=lambda: raise_frame(Home)) | |
| 238 | b.grid(row=81,column=10) | |
| 239 | ||
| 240 | # --- start --- | |
| 241 | ||
| 242 | raise_frame(Home) | |
| 243 | ||
| 244 | root.mainloop() |