Skip to content

Commit 8b51e99

Browse files
Create employee_temp.py
1 parent 2081528 commit 8b51e99

File tree

1 file changed

+156
-0
lines changed

1 file changed

+156
-0
lines changed

projects/employee_temp.py

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
from tkinter import *
2+
from tkinter import messagebox
3+
4+
class EmployeeApp:
5+
def __init__(self, master):
6+
# Initialize the main window
7+
self.master = master
8+
master.geometry("1400x800")
9+
# make the window non-resizable
10+
master.resizable(0, 0)
11+
# set the title of the window
12+
master.title("Employee Database")
13+
# keep the window on top
14+
master.attributes("-topmost", True)
15+
16+
# configure grid layout for the master window
17+
master.columnconfigure(2, weight=1)
18+
master.rowconfigure(3, weight=1)
19+
20+
# define light grey color for borders
21+
light_grey = "#C0C0C0"
22+
23+
# ====================
24+
25+
# personal information frame
26+
self.personal_frame = Frame(master, relief="solid", highlightbackground=light_grey, highlightthickness=1)
27+
self.personal_frame.grid(row=0, column=0, padx=10, pady=10, sticky="nsew")
28+
29+
# personal frame title
30+
self.personal_title_label = Label(self.personal_frame, text="Employee Information", font=("Arial", 10, "bold"))
31+
self.personal_title_label.grid(row=0, column=0, columnspan=2, padx=5, pady=5, sticky="w")
32+
33+
# first Name
34+
self.first_name_label = Label(self.personal_frame, text="First Name:", font=("Arial", 10))
35+
self.first_name_label.grid(row=1, column=0, padx=5, pady=5, sticky="w")
36+
self.first_name_entry = Entry(self.personal_frame, font=("Arial", 10))
37+
self.first_name_entry.grid(row=1, column=1, padx=10, pady=5, sticky="e")
38+
39+
# last Name
40+
self.last_name_label = Label(self.personal_frame, text="Last Name:", font=("Arial", 10))
41+
self.last_name_label.grid(row=2, column=0, padx=5, pady=5, sticky="w")
42+
self.last_name_entry = Entry(self.personal_frame, font=("Arial", 10))
43+
self.last_name_entry.grid(row=2, column=1, padx=10, pady=5, sticky="e")
44+
45+
# date of Birth
46+
self.dob_label = Label(self.personal_frame, text="Date of Birth:", font=("Arial", 10))
47+
self.dob_label.grid(row=3, column=0, padx=5, pady=5, sticky="w")
48+
self.dob_entry = Entry(self.personal_frame, font=("Arial", 10))
49+
self.dob_entry.grid(row=3, column=1, padx=10, pady=5, sticky="e")
50+
51+
# gender
52+
self.gender_label = Label(self.personal_frame, text="Gender:", font=("Arial", 10))
53+
self.gender_label.grid(row=4, column=0, padx=5, pady=5, sticky="w")
54+
self.gender_entry = Entry(self.personal_frame, font=("Arial", 10))
55+
self.gender_entry.grid(row=4, column=1, padx=10, pady=5, sticky="e")
56+
57+
# ====================
58+
59+
# contact information frame
60+
self.contact_frame = Frame(master, relief="solid", highlightbackground=light_grey, highlightthickness=1)
61+
self.contact_frame.grid(row=1, column=0, padx=10, pady=10, sticky="nsew")
62+
63+
# contact frame title
64+
self.contact_title_label = Label(self.contact_frame, text="Contact Information", font=("Arial", 10, "bold"))
65+
self.contact_title_label.grid(row=0, column=0, columnspan=2, padx=5, pady=5, sticky="w")
66+
67+
# email Address
68+
self.email_label = Label(self.contact_frame, text="Email Address:", font=("Arial", 10))
69+
self.email_label.grid(row=1, column=0, padx=5, pady=5, sticky="w")
70+
self.email_entry = Entry(self.contact_frame, font=("Arial", 10))
71+
self.email_entry.grid(row=1, column=1, padx=10, pady=5, sticky="e")
72+
73+
# phone number
74+
self.phone_number_label = Label(self.contact_frame, text="Phone Number:", font=("Arial", 10))
75+
self.phone_number_label.grid(row=2, column=0, padx=5, pady=5, sticky="w")
76+
self.phone_number_entry = Entry(self.contact_frame, font=("Arial", 10))
77+
self.phone_number_entry.grid(row=2, column=1, padx=10, pady=5, sticky="ew")
78+
79+
# home address
80+
self.address_label = Label(self.contact_frame, text="Home Address:", font=("Arial", 10))
81+
self.address_label.grid(row=3, column=0, padx=5, pady=5, sticky="w")
82+
self.address_entry = Entry(self.contact_frame, font=("Arial", 10))
83+
self.address_entry.grid(row=3, column=1, padx=10, pady=5, sticky="e")
84+
85+
# zip code
86+
self.zip_code_label = Label(self.contact_frame, text="Zip Code:", font=("Arial", 10))
87+
self.zip_code_label.grid(row=4, column=0, padx=5, pady=5, sticky="w")
88+
self.zip_code_entry = Entry(self.contact_frame, font=("Arial", 10))
89+
self.zip_code_entry.grid(row=4, column=1, padx=10, pady=5, sticky="e")
90+
91+
# ====================
92+
93+
# job information frame
94+
self.job_frame = Frame(master, relief="solid", highlightbackground=light_grey, highlightthickness=1)
95+
self.job_frame.grid(row=2, column=0, padx=10, pady=10, sticky="nsew")
96+
97+
# job information title
98+
self.job_frame_title = Label(self.job_frame, text="Job Information", font=("Arial", 10, "bold"))
99+
self.job_frame_title.grid(row=0, column=0, columnspan=2, padx=5, pady=5, sticky="w")
100+
101+
# job title
102+
self.job_title_label = Label(self.job_frame, text="Job Title:", font=("Arial", 10))
103+
self.job_title_label.grid(row=1, column=0, padx=5, pady=5, sticky="w")
104+
self.job_title_entry = Entry(self.job_frame, font=("Arial", 10))
105+
self.job_title_entry.grid(row=1, column=1, padx=10, pady=5, sticky="e")
106+
107+
# department
108+
self.department_label = Label(self.job_frame, text="Department:", font=("Arial", 10))
109+
self.department_label.grid(row=2, column=0, padx=5, pady=5, sticky="w")
110+
self.department_entry = Entry(self.job_frame, font=("Arial", 10))
111+
self.department_entry.grid(row=2, column=1, padx=10, pady=5, sticky="e")
112+
113+
# date of hire
114+
self.hire_date_label = Label(self.job_frame, text="Hire Date:", font=("Arial", 10))
115+
self.hire_date_label.grid(row=3, column=0, padx=5, pady=5, sticky="w")
116+
self.hire_date_entry = Entry(self.job_frame, font=("Arial", 10))
117+
self.hire_date_entry.grid(row=3, column=1, padx=10, pady=5, sticky="e")
118+
119+
# salary
120+
self.salary_label = Label(self.job_frame, text="Salary:", font=("Arial", 10))
121+
self.salary_label.grid(row=4, column=0, padx=5, pady=5, sticky="w")
122+
self.salary_entry = Entry(self.job_frame,font=("Arial", 10))
123+
self.salary_entry.grid(row=4, column=1, padx=0, pady=5, sticky="e")
124+
125+
# ====================
126+
127+
# emergency contact frame
128+
self.emergency_contact_frame = Frame(master, relief="solid", highlightbackground=light_grey, highlightthickness=1)
129+
self.emergency_contact_frame.grid(row=3, column=0, padx=10, pady=10, sticky="nsew")
130+
131+
# ====================
132+
133+
# configure grid layout for the frames to expand properly
134+
self.personal_frame.columnconfigure(1, weight=1)
135+
self.contact_frame.columnconfigure(1, weight=1)
136+
self.job_frame.columnconfigure(1, weight=1)
137+
138+
# emergency contact name
139+
self.eContact_label = Label(self.emergency_contact_frame, text="Emergency Name:", font=("Arial", 10))
140+
self.eContact_label.grid()
141+
# relationship
142+
# phone number
143+
144+
def main():
145+
"""Initialize the Tkinter window application."""
146+
# create the main window
147+
window = Tk()
148+
# create an instance of the EmployeeApp class
149+
app = EmployeeApp(window)
150+
# start the Tkinter event loop
151+
window.mainloop()
152+
153+
154+
if __name__ == "__main__":
155+
# run the main function if the script is executed directly
156+
main()

0 commit comments

Comments
 (0)