1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
| import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from phonebook_class import Ui_MainWindow
from centralwidget_class import Ui_centralWidgetForm
from savings_class import Ui_savingForm
import os.path
import sqlite3
from PyQt5.QtWidgets import QMessageBox
#############################################################################################"
class MySavingForm(QtWidgets.QWidget, Ui_savingForm):
def __init__(self,*args,parent = None, **kwargs):
super().__init__(*args,**kwargs)
#self.parent = parent
self.setupUi(self)
self.setWindowTitle("Enregistrement des contacts dans la base de données")
self.setFixedSize(700, 700)
self.setWindowModality(2)
self.move(600, 50)
self.btneffacer.clicked.connect(self.delete)
self.btnvalider.clicked.connect(self.validate)
self.rbtnmale.toggled.connect(self.onClicked)
self.rbtnfemale.toggled.connect(self.onClicked)
list_controls = [self.textboxnom, self.textboxprenom, self.textboxmetier, self.textboxpays, self.textboxcontact]
for item in list_controls:
item.textChanged.connect(self.onChanged)
def onChanged(self):
list_controls = [self.textboxnom, self.textboxprenom, self.textboxmetier, self.textboxpays, self.textboxcontact]
for item in list_controls:
myText = item.text()
myNewText = myText.title()
item.setText(myNewText)
def onClicked(self):
global rbtnsexe
radiobutton = self.sender()
if radiobutton.isChecked():
rbtnsexe = radiobutton.text()
def delete(self):
# Deleting of all input controls
list_controls = [self.textboxnom,self.textboxprenom, self.textboxmetier, \
self.textboxpays, self.textboxcontact, self.textadresse]
for item in list_controls:
item.clear()
def validate(self):
if (self.textboxnom.text(), self.textboxprenom.text(), self.textboxmetier.text(), \
self.textboxpays.text(), self.textboxcontact.text(), self.textadresse.document().toPlainText()) \
!= ("", "", "", "", "", "") and (self.rbtnmale.isChecked() or self.rbtnfemale.isChecked()):
# Transfer of datas from entries to sqlite3 database named "my_database"
connexion = sqlite3.connect("phonebook_Database.db")
cur = connexion.cursor()
datas = [ self.textboxnom.text(), self.textboxprenom.text(), rbtnsexe, \
self.textboxmetier.text(), self.textboxpays.text(), self.textboxcontact.text(), \
self.textadresse.document().toPlainText()]
req = "INSERT INTO Annuaire(Noms, Prenoms, Sexe, Metier, Pays, Contact, Adresse) VALUES(?,?,?,?,?,?,?)"
cur.execute(req, datas)
connexion.commit()
# Transfer of datas from entries to QTableWidget
vTable = self.parent().table # Acces of QtableWidget of centralwidget of my mainwindow
i = vTable.rowCount()
vTable.setRowCount(i+1)
print(i)
vTable.setitem(i + 1, 0, QtWidgets.QTableWidgetItem("merci"))
vTable.setitem(i + 1, 1, QtWidgets.QTableWidgetItem(self.textboxnom.text()))
vTable.setitem(i + 1, 2, QtWidgets.QTableWidgetItem(self.textboxprenom.text()))
vTable.setitem(i + 1, 3, QtWidgets.QTableWidgetItem(rbtnsexe))
vTable.setitem(i + 1, 4, QtWidgets.QTableWidgetItem(self.textboxmetier.text()))
vTable.setitem(i + 1, 5, QtWidgets.QTableWidgetItem(self.textboxpays.text()))
vTable.setitem(i + 1, 6, QtWidgets.QTableWidgetItem(self.textboxcontact.text()))
vTable.setitem(i + 1, 7, QtWidgets.QTableWidgetItem(self.textadresse.document().toPlainText()))
# Deleting of entries
self.delete()
else:
msg = QMessageBox()
msg.setWindowTitle("Attention")
msg.setIcon(QMessageBox.Warning)
msg.setText("Veuillez remplir tous les champs et cocher la case du sexe avant la validation")
msg.setDetailedText("Pour pouvoir enregistrer les données dans la base vous etes obligé \n de saisir tous les \
champs. Aucun champs de saisie ne doit etre vide. Cordialement")
msg.setStandardButtons(QMessageBox.Yes)
msg.exec_()
class MyCentralWidget(QtWidgets.QWidget, Ui_centralWidgetForm):
def __init__(self,*args,parent = None, **kwargs):
super().__init__(*args,**kwargs)
self.parent = parent
self.setupUi(self)
# Definition of the columns width
self.table.setColumnWidth(0, 10)
self.table.setColumnWidth(1, 300)
self.table.setColumnWidth(2, 300)
self.table.setColumnWidth(3, 100)
self.table.setColumnWidth(4, 300)
self.table.setColumnWidth(5, 300)
self.table.setColumnWidth(6, 200)
self.table.setColumnWidth(7, 300)
self.btnreinitialize.clicked.connect(self.showDialog)
# Updating QTableWidget with the database after validate entries
database_creation()
connexion = sqlite3.connect("phonebook_Database.db")
cur = connexion.cursor()
result = cur.execute("SELECT* FROM Annuaire")
self.table.setRowCount(0)
for i, row_data in enumerate(result):
self.table.insertRow(i)
for j, data in enumerate(row_data):
self.table.setItem(i, j, QtWidgets.QTableWidgetItem(str(data)))
def showDialog(self):
# pour reinitialiser et mettre à jour la tablewidget
text, ok = QtWidgets.QInputDialog.getText(self, "input dialog", "Enter password", QtWidgets.QLineEdit.Password,"")
if ok and text == "364301":
# Opening connexion of database and executing query
connexion = sqlite3.connect("phonebook_Database.db")
cur = connexion.cursor()
query = "DELETE FROM Annuaire" # deleting all from table annuaire
cur.execute(query)
connexion.commit()
# Updating QTableWidget after validate entries
result = cur.execute("SELECT* FROM Annuaire")
self.table.setRowCount(0)
for i, row_data in enumerate(result):
self.table.insertRow(i)
for j, data in enumerate(row_data):
self.table.setItem(i, j, QtWidgets.QTableWidgetItem(str(data)))
class MyMainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self,*args,parent = None, **kwargs):
super().__init__(*args,**kwargs)
self.parent = parent
self.setupUi(self)
self.setWindowTitle("Logiciel d'enregistrement crée par Jules BETFIEN")
central_widget = MyCentralWidget(self)
self.setCentralWidget(central_widget)
self.actionInscription.triggered.connect(self.showSavingForm)
self.actionQuitter.triggered.connect(app.quit) # To close the MainWindow
def showSavingForm(self):
# Pour afficher la fenetre des enregistrements
self.sWindow = MySavingForm(parent = self)
self.sWindow.show()
def database_creation():
# Create connexion
connexion = sqlite3.connect("phonebook_Database.db")
cur = connexion.cursor()
# Creation of table
query = "CREATE TABLE IF NOT EXISTS Annuaire(id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL, \
Noms TEXT OT NULL, \
Prenoms TEXT NOT NULL, \
Sexe TEXT NOT NULL, \
Metier TEXT NOT NULL, \
Pays TEXT NOT NULL, \
Contact REAL NOT NULL, \
Adresse TEXT NOT NULL)"
cur.execute(query)
def database_closing():
connexion = sqlite3.connect("phonebook_Database.db")
cur = connexion.cursor()
# Closing of connexion
cur.close()
connexion.close()
if __name__=="__main__":
#Openning application and main window
app = QtWidgets.QApplication(sys.argv)
fen = MyMainWindow()
database_creation()
fen.show()
app.exec()
database_closing() |
Partager