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
|
fichier 1 :
from datetime import datetime
from PyQt5 import QtCore
from PyQt5.QtWidgets import QMessageBox
from PyQt5.QtCore import Qt
import json
import pandas as pd
class ListPumpModel(QtCore.QAbstractListModel):
def __init__(self, pumps, types, *args, **kwargs, ):
super(ListPumpModel, self).__init__(*args, **kwargs)
self.pumps = pumps
self.types = types
def data(self, index, role):
if role == Qt.DisplayRole:
serial = index.data().split(" ")[1]
pump = next(pump for pump in self.datas.pumps if pump.serial == serial)
return self.types[str(pump.type)] + " " + pump.serial
def rowCount(self, index):
return len(self.pumps)
class Pump:
def __init__(self, id, loc, type, serial, pms, lochistory):
"""
init expect : pump type,
"""
self.id = id
self.localisation = loc
self.type = type
self.serial = serial
self.pm=[PM(pm) for pm in pms]
self.lochistory = lochistory
def __str__(self):
return self.type + " " + self.serial
fichier 2 :
from PyQt5.QtWidgets import QMainWindow
from PyQt5 import QtCore, QtGui
from PyQt5.uic import loadUi
from model import ListPumpModel, messageBox, Pump
from datetime import date, datetime
class PumpWindow(QMainWindow):
"""Main Window."""
def __init__(self, mainWin, parent=None):
"""Initializer."""
super(PumpWindow, self).__init__(parent)
loadUi("pump_manager.ui", self)
self.datas = mainWin.datas
self.actionToken = ""
self.initWidgets()
self.show()
def initWidgets(self):
self.entry = QtGui.QStandardItemModel()
self.loclabel.hide()
self.loclist.hide()
self.removelocbutton.hide()
self.pmlabel.hide()
self.pmlist.hide()
self.cancelbutton.hide()
self.addbutton.clicked.connect(self.addpumpclicked)
self.cancelbutton.clicked.connect(self.cancelclicked)
self.validatebutton.clicked.connect(self.validateclicked)
self.listmodel = ListPumpModel(self.datas.pumps, self.datas.types)
self.pumplist.setModel(self.listmodel)
self.pumplist.selectionModel().currentChanged.connect(self.pumpselected)
def pumpselected(self, index):
if index.data() != None:
self.showpump(index)
else:
self.deletebutton.setEnabled(False)
self.validatebutton.setEnabled(False)
self.comboloc.setCurrentIndex(0)
self.combotype.setCurrentIndex(0)
self.lineserial.setText("") |
Partager