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
|
import os
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtSql import *
from PyQt5.Qt import *
NUMMANIP, NOMS, REFCAHIER, TAILLE, NBITER, PCIBLE, FENETRE, COLLIMATEUR, ENERGIE, FAISCEAU, COMPTEUR, OBJECTIF, COMMENTAIRE, MODE = range(14)
class ManipDlg(QDialog):
def __init__(self):
super(ManipDlg, self).__init__()
self.db = None
self.manipView = QTableView()
self.openDatabase()
buttonsBox = QDialogButtonBox()
addButton = buttonsBox.addButton("Ajouter", QDialogButtonBox.ActionRole)
deleteButton = buttonsBox.addButton("Supprimer", QDialogButtonBox.ActionRole)
layout = QVBoxLayout()
layout.addWidget(self.manipView)
layout.addWidget(buttonsBox)
self.setLayout(layout)
self.openDatabase()
def openDatabase(self):
if self.db:
self.closeDatabase()
self.db = QSqlDatabase.addDatabase("QSQLITE")
self.db.setDatabaseName("base.db")
self.db.open()
if not self.db.open():
QMessageBox.warning(None, "Reference Data",
"Database Error: {}".format(self.db.lastError().text()))
sys.exit(1)
self.manipModel = QSqlRelationalTableModel(self)
self.manipModel.setTable("manip")
self.manipModel.setSort(NUMMANIP, Qt.DescendingOrder)
self.manipModel.setHeaderData(NUMMANIP, Qt.Horizontal, QVariant("numManip"))
self.manipModel.setHeaderData(NOMS, Qt.Horizontal, QVariant("noms"))
self.manipModel.setHeaderData(REFCAHIER, Qt.Horizontal, QVariant("refCahier"))
self.manipModel.setHeaderData(TAILLE, Qt.Horizontal, QVariant("taille"))
self.manipModel.setHeaderData(NBITER, Qt.Horizontal, QVariant("nbIter"))
self.manipModel.setHeaderData(PCIBLE, Qt.Horizontal, QVariant("Pcible"))
self.manipModel.setHeaderData(FENETRE, Qt.Horizontal, QVariant("fenetre"))
self.manipModel.setHeaderData(COLLIMATEUR, Qt.Horizontal, QVariant("collimateur"))
self.manipModel.setHeaderData(ENERGIE, Qt.Horizontal, QVariant("energie"))
self.manipModel.setHeaderData(FAISCEAU, Qt.Horizontal, QVariant("faisceau"))
self.manipModel.setHeaderData(COMPTEUR, Qt.Horizontal, QVariant("compteur"))
self.manipModel.setHeaderData(OBJECTIF, Qt.Horizontal, QVariant("objectif"))
self.manipModel.setHeaderData(COMMENTAIRE, Qt.Horizontal, QVariant("commentaire"))
self.manipModel.setHeaderData(MODE, Qt.Horizontal, QVariant("mode"))
self.manipModel.setEditStrategy(QSqlTableModel.OnFieldChange)
self.manipModel.select()
self.manipView.setModel(self.manipModel)
self.manipView.setSelectionMode(QTableView.SingleSelection)
self.manipView.setSelectionBehavior(QTableView.SelectRows)
self.manipView.resizeColumnsToContents()
def closeDatabase(self):
print ('1')
self.manipView.setModel(None)
del self.manipModel
self.db.close()
dbConnectionName = self.db.connectionName()
self.db = QSqlDatabase()
self.db.removeDatabase(dbConnectionName)
def closeEvent(self, event):
self.closeDatabase()
def main():
app = QApplication(sys.argv)
form = ManipDlg()
form.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main() |
Partager