Skip to content
Snippets Groups Projects
Commit 37b09d50 authored by Bui2.Huan@live.uwe.ac.uk's avatar Bui2.Huan@live.uwe.ac.uk
Browse files

Upload New File

parent 93de8219
Branches
No related tags found
No related merge requests found
from tkinter import *
import json
# Main window
window = Tk()
window.title("Staff Members")
# Listbox and scrollbar
lstName = Listbox(window, width=15, height=10)
yscroll = Scrollbar(window, command=lstName.yview)
yscroll.grid(row=0, column=3, sticky=NS, rowspan=3)
lstName.config(yscrollcommand=yscroll.set)
lstName.grid(row=0, column=0, sticky=W, columnspan=2, rowspan=3)
# Text field to display staff details
txt = Text(window, width=30, height=10)
txt.grid(row=0, column=5, padx=5, pady=0)
# Load data from JSON file
file_path = r"D:/Học Tập/Năm 2/advanced software development/lab/week10/users.json"
try:
with open(file_path, 'r') as l:
loaded_list = json.load(l)
for line in loaded_list:
staffData = line[0]
lstName.insert('end', staffData)
except FileNotFoundError:
loaded_list = []
# Display selected staff details
def select(evt):
try:
value = lstName.curselection()[0]
templist = loaded_list[value]
txt.delete(1.0, END)
for i in templist:
txt.insert(END, i + '\n')
except IndexError:
pass
lstName.bind('<<ListboxSelect>>', select)
# Add staff member window
def add_staff():
def save_staff():
new_staff = [name_entry.get(), role_entry.get(), office_entry.get(), email_entry.get()]
loaded_list.append(new_staff)
lstName.insert(END, new_staff[0])
with open(file_path, 'w') as f:
json.dump(loaded_list, f)
add_window.destroy()
add_window = Toplevel(window)
add_window.title("Add Staff")
Label(add_window, text="Name:").grid(row=0, column=0)
name_entry = Entry(add_window)
name_entry.grid(row=0, column=1)
Label(add_window, text="Role:").grid(row=1, column=0)
role_entry = Entry(add_window)
role_entry.grid(row=1, column=1)
Label(add_window, text="Office:").grid(row=2, column=0)
office_entry = Entry(add_window)
office_entry.grid(row=2, column=1)
Label(add_window, text="Email:").grid(row=3, column=0)
email_entry = Entry(add_window)
email_entry.grid(row=3, column=1)
Button(add_window, text="Save", command=save_staff).grid(row=4, columnspan=2)
# Remove staff member
def remove_staff():
try:
value = lstName.curselection()[0]
lstName.delete(value)
del loaded_list[value]
with open(file_path, 'w') as f:
json.dump(loaded_list, f)
txt.delete(1.0, END)
except IndexError:
pass
# Buttons for adding and removing staff
Button(window, text="Add Staff", command=add_staff).grid(row=1, column=5, pady=5)
Button(window, text="Remove Staff", command=remove_staff).grid(row=2, column=5, pady=5)
window.mainloop()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment