код pyqt5 с базой данных экзамен

import sys
from PyQt5.QtWidgets import



QApplication, QWidget, QLabel, QVBoxLayout, QLineEdit, QHBoxLayout, QPushButton, QListWidget
import sqlite3

conn = sqlite3.connect("telef.db")
t = conn.cursor()

t.execute('''CREATE TABLE IF NOT EXISTS telef
             (name TEXT, la_name TEXT, mi_name TEXT, mail TEXT, number TEXT)''')

conn.commit()

class telefon(QWidget):
    def __init__(self):
        super().__init__()

    self.setWindowTitle("Телефонная книжка")
    self.layout = QVBoxLayout()

    self.name_label = QLabel("Имя")
    self.name_input = QLineEdit()

    self.la_name_label = QLabel("Фамилия")
    self.la_name_input = QLineEdit()

    self.mi_name_label = QLabel("Отчество")
    self.mi_name_input = QLineEdit()

    self.mail_label = QLabel("Почта")
    self.mail_input = QLineEdit()

    self.number_label = QLabel("Телефон")
    self.number_input = QLineEdit()

    self.add = QPushButton("Добавить")
    self.add.clicked.connect(self.add_t)

    self.dell = QPushButton("Удалить")
    self.dell.clicked.connect(self.dell_t)

    self.list = QListWidget()

    self.layout.addWidget(self.name_label)
    self.layout.addWidget(self.name_input)
    self.layout.addWidget(self.la_name_label)
    self.layout.addWidget(self.la_name_input)
    self.layout.addWidget(self.mi_name_label)
    self.layout.addWidget(self.mi_name_input)
    self.layout.addWidget(self.mail_label)
    self.layout.addWidget(self.mail_input)
    self.layout.addWidget(self.number_label)
    self.layout.addWidget(self.number_input)
    self.layout.addWidget(self.add)
    self.layout.addWidget(self.dell)
    self.layout.addWidget(self.list)

    self.setLayout(self.layout)
    self.load_tasks()

def add_t(self):
    name = self.name_input.text()
    laname = self.la_name_input.text()
    miname = self.mi_name_input.text()
    mail = self.mail_input.text()
    number = self.number_input.text()

    if name and laname and miname and mail and number:
        t.execute("INSERT INTO telef (name, la_name, mi_name, mail, number) VALUES (?, ?, ?, ?, ?)", (name, laname, miname, mail, number))
        conn.commit()

        self.name_input.clear()
        self.la_name_input.clear()
        self.mi_name_input.clear()
        self.mail_input.clear()
        self.number_input.clear()
        self.load_tasks()

def dell_t(self):
    sel = self.list.selectedItems()

    if sel:
        for item in sel:
            item_text = item.text()
            name = item_text.split(",")[1].strip()

            t.execute("DELETE FROM telef WHERE name=?", (name,))
            conn.commit()
            self.load_tasks()

def load_tasks(self):
    self.list.clear()

    t.execute("SELECT * FROM telef")
    contacts = t.fetchall()

    for task in contacts:
        lamale = task[0]
        name = task[1]
        miname = task[2]
        mail = task[3]
        number = task[4]
        item_text = f"{name}, {lamale}, {miname}, {mail}, {number}"
        self.list.addItem(item_text)

 if __name__ == '__main__':
    app = QApplication(sys.argv)
    planner = telefon()
    planner.show()
    sys.exit(app.exec_())

Ответы (0 шт):