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
| from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtSql import *
from datetime import datetime
import sys
import time
import os
import TabView
from DB_manager import tableModelQtsqlTry
from DBessai import *
# To incorporate UI_view_SARAA inherit QDialog, and UI_view
class MainDialog(QDialog, TabView.Ui_Dialog):
def __init__(self, parent=None):
super(MainDialog, self).__init__(parent)
self.setupUi(self)
# appel de la classe du module dbessai
self.LaBase = LaBase()
self.model = QSqlTableModel()
self.model.setTable("Contact")
self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
self.model.select()
self.model.setHeaderData(0, Qt.Horizontal, "ID")
self.model.setHeaderData(1, Qt.Horizontal, "pilot_1")
self.model.setHeaderData(2, Qt.Horizontal, "datetime1")
self.model.setHeaderData(3, Qt.Horizontal, "datetime2")
self.model.setHeaderData(4, Qt.Horizontal, "Calcul")
self.tableView.setModel(self.model)
def setdata(self):
query = QSqlQuery()
query.prepare("INSERT INTO Contact (pilot_1,datetime1,datetime2,total)" "VALUES (?,?,?,?)")
query.bindValue(0, self.lineEdit_pilote.text())
query.bindValue(1, self.dateTimeEdit.text())
query.bindValue(2, self.dateTimeEdit_2.text())
query.bindValue(3, str(self.get_date_diff()))
query.exec_()
self.model.select()
def remove_row(self):
index = self.tableView.currentIndex()
deleteconf = QMessageBox.critical(self.parent(), "DELETE ROW", "REALLY DELETE", QMessageBox.Yes,
QMessageBox.No)
if deleteconf == QMessageBox.Yes:
self.model.removeRow(index.row())
self.model.submitAll()
self.model.select()
return
else:
return
def get_date_diff(self):
quer = QSqlTableModel(self.model)
quer.setTable("Contact")
quer.select()
i = 0
while i < quer.rowCount():
time1 = quer.record(i).value("datetime1")
time2 = quer.record(i).value("datetime2")
i += 1
print(type(time1))
diff = datetime.strptime(time2, "%Y-%m-%d %H:%M") - datetime.strptime(time1, "%Y-%m-%d %H:%M")
print(diff)
@pyqtSlot()
def on_calculer_clicked(self):
str(self.get_date_diff)
@pyqtSlot()
def on_pushButton_4_clicked(self):
self.setdata()
@pyqtSlot()
def on_Effacer_clicked(self):
self.remove_row()
if __name__ == '__main__':
try:
app = QApplication(sys.argv)
# create and display splash screen
splash_pix = QPixmap('Logo.png')
splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint)
splash.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
splash.setEnabled(False)
# add progress bar
progressBar = QProgressBar(splash)
progressBar.setMaximum(10)
progressBar.setGeometry(0, splash_pix.height() - 50, splash_pix.width(), 20)
splash.show()
splash.showMessage("<h1><font color='black'>----Bienvenue----</font></h1>",
Qt.AlignTop | Qt.AlignCenter, Qt.black)
for i in range(1, 11):
progressBar.setValue(i)
t = time.time()
while time.time() < t + 0.1:
app.processEvents()
# simulating
time.sleep(1)
form = MainDialog()
form.show()
splash.finish(form)
app.exec_()
sys.exit(0)
except NameError:
print("Name Error: ", sys.exc_info()[1])
except SystemExit:
print("Closing Window....")
except Exception:
print(sys.exc_info()[1]) |
Partager