Initial commit

Initial commit

Коммитер link_dice_aden
год назад
Файлов изменено: 1
+16–3
9f283aa
Родители 935bf10 master
phonebook.py
@@ -3,6 +3,7 @@
from tkinter import ttk
# Класс Main - главное окно приложения
class Main(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
@@ -11,6 +12,7 @@
        self.view_records()
    def init_main(self):
        # Создание верхней панели приложения
        toolbar = tk.Frame(bg="#d7d8e0", bd=2)
        toolbar.pack(side=tk.TOP, fill=tk.X)
        self.add_img = tk.PhotoImage(file="./img/add.png")
@@ -19,13 +21,16 @@
                                    image=self.add_img)
        btn_open_dialog.pack(side=tk.LEFT)
        # Создание таблицы для отображения записей
        self.tree = ttk.Treeview(self, columns=['ID''name''tel''email'], height=45, show='headings')
        
        # Настройка столбцов
        self.tree.column('ID', width=30, anchor=tk.CENTER)
        self.tree.column('name', width=300, anchor=tk.CENTER)
        self.tree.column('tel', width=150, anchor=tk.CENTER)
        self.tree.column('email', width=150, anchor=tk.CENTER)
        # Настройка столбцов
        self.tree.heading('ID', text='ID')
        self.tree.heading('name', text='ФИО')
        self.tree.heading('tel', text='Телефон')
@@ -65,10 +70,12 @@
        Child()
    def records(self, name, tel, email):
        # Добавление записи в базу данных и обновление отображения записей
        self.db.insert_data(name, tel, email)
        self.view_records()
    def view_records(self):
        # Загрузка и отображение записей из базы данных
        self.db.c.execute('''SELECT * FROM db''')
        [self.tree.delete(i) for i in self.tree.get_children()]
        [self.tree.insert('''end', values=row) for row in self.db.c.fetchall()]
@@ -96,6 +103,7 @@
        [self.tree.delete(i) for i in self.tree.get_children()]
        [self.tree.insert('''end', values=row) for row in self.db.c.fetchall()]
# Класс Child - окно для добавления новой записи
class Child(tk.Toplevel):
    def __init__(self):
        super().__init__()
@@ -110,6 +118,7 @@
        self.grab_set()
        self.focus_set()
        # Создание меток и полей для ввода данных
        label_name = tk.Label(self, text='ФИО')
        label_name.place(x=50, y=50)
@@ -128,11 +137,13 @@
        self.entry_tel = ttk.Entry(self)
        self.entry_tel.place(x=200, y=110)
        # Кнопки "Добавить" и "Закрыть"
        self.button_cancel = ttk.Button(self, text='Закрыть', command=self.destroy)
        self.button_cancel.place(x=300, y=170)
        self.btn_ok = ttk.Button(self, text='Добавить')
        self.btn_ok.place(x=220, y=170)
        # Привязка события к кнопке "Добавить" для сохранения записи
        self.btn_ok.bind('<Button-1>'lambda event: self.view.records(self.entry_name.get(), self.entry_tel.get(), self.entry_email.get()))
class Update(Child):
@@ -182,7 +193,7 @@
        btn_search.place(x=105, y=50)
        btn_search.bind('<Button-1>'lambda event: self.view.search_records(self.entry_search.get()))
        btn_search.bind('<Button-1>'lambda event: self.destroy(), add='+')
# Класс DB - управление базой данных SQLite
class DB:
    def __init__(self):
        self.conn = sqlite3.connect("db.db")
@@ -197,9 +208,11 @@
        self.conn.commit()
    
    def insert_data(self, name, tel, email):
        # Вставка новой записи в базу данных
        self.c.execute("INSERT INTO db (name, tel, email) VALUES(?, ?, ?)", (name, tel, email))
        self.conn.commit()
        
# Основной код приложения
if __name__ == "__main__":
    root = tk.Tk()
    db = DB()

Cherry-pick

Команда cherry-pick позволяет выбрать отдельные коммиты из одной ветки и применить их к другой.