import tkinter as tk
from tkinter import messagebox
class Person:
instances = []
def __init__(self, name, subname, sex, age, number, adress):
self.name = name
self.subname = subname
self.sex = sex
self.age = age
self.number = number
self.adress = adress
self.instances.append(self)
@staticmethod
def output():
inp = input('Введите искомую фамилию ')
test = False
for i in Person.instances:
if i.subname == inp:
test = True
print(f'имя {i.name} \nпол: {i.sex} \nвозраст: {i.age} \nномер: {i.number} \nадрес: {i.adress}')
if not test:
print('Фамилия не найдена')
@staticmethod
def append_obj():
obj_args = []
queries = ['Имя: ', 'Фамилия: ', 'Пол: ', 'Возраст: ', 'Номер: ', 'Адрес: ']
for i in range(len(queries)):
obj_args.append(input(queries[i]))
obj = Person(*obj_args)
class PersonGUI:
def __init__(self, master):
self.master = master
master.title("Person Database")
# Create labels and entry fields for each attribute
tk.Label(master, text="Имя:").grid(row=0)
tk.Label(master, text="Фамилия:").grid(row=1)
tk.Label(master, text="Пол:").grid(row=2)
tk.Label(master, text="Возраст:").grid(row=3)
tk.Label(master, text="Номер:").grid(row=4)
tk.Label(master, text="Адрес:").grid(row=5)
self.name_entry = tk.Entry(master)
self.subname_entry = tk.Entry(master)
self.sex_entry = tk.Entry(master)
self.age_entry = tk.Entry(master)
self.number_entry = tk.Entry(master)
self.adress_entry = tk.Entry(master)
self.name_entry.grid(row=0, column=1)
self.subname_entry.grid(row=1, column=1)
self.sex_entry.grid(row=2, column=1)
self.age_entry.grid(row=3, column=1)
self.number_entry.grid(row=4, column=1)
self.adress_entry.grid(row=5, column=1)
# Create buttons to append a new person and output information
tk.Button(master, text="Добавить", command=self.add_person).grid(row=6, column=0, pady=10)
tk.Button(master, text="Найти", command=self.find_person).grid(row=6, column=1, pady=10)
def add_person(self):
# Get attribute values from entry fields and create a new Person object
name = self.name_entry.get()
subname = self.subname_entry.get()
sex = self.sex_entry.get()
age = self.age_entry.get()
number = self.number_entry.get()
adress = self.adress_entry.get()
obj = Person(name, subname, sex, age, number, adress)
# Show a message box to confirm the new person was added
messagebox.showinfo("Добавлено", f"{name} {subname} добавлен в базу данных.")
# Clear the entry fields
self.name_entry.delete(0, tk.END)
self.subname_entry.delete(0, tk.END)
self.sex_entry.delete(0, tk.END)
self.age_entry.delete(0, tk.END)
self.number_entry.delete(0, tk.END)
self.adress_entry.delete(0, tk.END)