View difference between Paste ID: W6DvUi1A and FQeMAiH7
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()