-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathAddView.py
93 lines (75 loc) · 2.5 KB
/
AddView.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import tkinter as tk
from tkinter import ttk
from views.View import View
"""
View responsible for adding new customers.
"""
class AddView(tk.Tk, View):
#-----------------------------------------------------------------------
# Constants
#-----------------------------------------------------------------------
PAD = 10
FIELDS = [
"First name", "Last name", "Zipcode", "Price paid"
]
#-----------------------------------------------------------------------
# Constructor
#-----------------------------------------------------------------------
"""
@param controller Controller of this view
"""
def __init__(self, controller):
super().__init__()
self.addController = controller
#-----------------------------------------------------------------------
# Methods
#-----------------------------------------------------------------------
"""
Creates view's frame.
"""
def _make_mainFrame(self):
self.frame_main = tk.Frame(self)
self.frame_main.pack()
"""
Creates view's title.
"""
def _make_title(self):
title = ttk.Label(self.frame_main, text="Customers Manager", font=("Helvetica", 20))
title.pack(padx=self.PAD, pady=self.PAD)
"""
Creates view's fields.
"""
def _make_fields(self):
frame_fields = tk.Frame(self.frame_main)
frame_fields.pack()
fields = []
i = 0
for field in self.FIELDS:
# Show headers
f = ttk.Label(frame_fields, text=field)
f.grid(row=i, column=0)
# Show fields
e = ttk.Entry(frame_fields, width=30)
e.grid(row=i, column=1)
fields.append(e)
i += 1
# Make buttons
frame_buttons = tk.Frame(self.frame_main)
frame_buttons.pack()
btn_submit = ttk.Button(frame_buttons, text="Create", command=lambda:self.addController.btn_add(fields))
btn_submit.pack(side="left")
btn_clear = ttk.Button(frame_buttons, text="Clear", command=lambda:self.addController.btn_clear(fields))
btn_clear.pack(side="left")
"""
@Overrite
"""
def main(self):
self._make_mainFrame()
self._make_title()
self._make_fields()
self.mainloop()
"""
@Overrite
"""
def close(self):
self.destroy()