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() |