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
| from PyQt5.QtWidgets import *
from PyQt5.QtWidgets import QMainWindow, QWidget, QPushButton, QAction
from PyQt5.QtGui import QIcon
from PyQt5 import QtCore, QtWidgets
class myHisto:
"""Classe myHisto pour stocker l'histogramme"""
def __init__(self):
print('Méthode __init__() de la classe myHisto')
self.m_list = []
def max(self):
"""Pour trouver le max de l'histogramme"""
bin_max = 0
for i in self.m_list:
if i.m_amount > bin_max:
bin_max = i.m_amount
return bin_max
class Intervalle:
""" Classe Intervalle"""
def __init__(self, a=0, b=0):
print('Méthode __init__() de la classe Intervalle')
self.m_x = a
self.m_amount = b
class MyMainWindow(QMainWindow):
""" Classe de l'application principale"""
def __init__(self, parent=None):
QWidget.__init__(self, parent=parent)
# Attributs de la fenetre principale
self.setGeometry(300, 300, 600, 450)
self.setWindowTitle('Main Window')
# Barre de status pour afficher les infos
self.statusBar = QStatusBar()
self.setStatusBar(self.statusBar)
self.statusBar.showMessage("Zone d'informations, peut toujours servir")
# Creation d'une instance de la classe myHisto
self.mHisto = myHisto()
self.createActions()
self.createMenus()
def createActions(self):
""" Créer ici les actions d'item de menu ainsi que connexions signal/slot, à compléter"""
self.exitAct = QAction(" &Quit", self)
self.openAct = QAction(" &Open", self)
self.saveAct = QAction(" &Save", self)
self.exitAct.setShortcut("Ctrl+X")
self.openAct.setShortcut("Ctrl+O")
self.saveAct.setShortcut("Ctrl+S")
def createMenus(self):
""" Créer ici les menu et les items de menu, à compléter"""
fileMenu = self.menuBar().addMenu("&File")
# self.actcolor.setIcon(QIcon(self.color_action_color))
# // Action Open file //
actOpen = QAction( QIcon( "" ), "&Open", self )
actOpen.setStatusTip( "Open" )
actOpen.setShortcut("Ctrl+O")
actOpen.triggered.connect(self.open)
fileMenu.addAction(actOpen)
# // Action save file//
actSave = QAction("&Save", self)
actSave.setStatusTip("Save ")
actSave.setShortcut("Ctrl+S")
fileMenu.addAction(actSave)
# // action restore file //
actRest = QAction("&Restore", self)
actRest.setStatusTip("Restore ")
fileMenu.addAction(actRest)
# // Display Menu //
displayMenu = self.menuBar().addMenu("&Display")
# // action clear //
actClear = QAction(QIcon(""),"&Clear", self)
actClear.setStatusTip("Clear")
displayMenu.addAction(actClear)
# Action Color /
actColor = QAction("&Color", self)
actClear.setStatusTip("Color")
displayMenu.addAction(actColor)
# Fonction open file
def open (self):
self.statusBar.showMessage("Histogram Open !")
filename = QFileDialog.getOpenFileName(QFileDialog(), " Ouverture du fichier",".", "*.dat")
print('open')
q_file = QFile(filename[0])
q_file.open(QIODevice.ReadOnly)
mod = 0
self.mHisto.liste = []
for element in QTextStream(q_file).readAll().split():
if mod % 2 == 1 :
self.mHisto.liste.append(element)
mod += 1
self.is_drawable = True
self.update()
def myExit(self):
""" Slot associé à exitAct, instance de QAction, à compléter """
self.statusBar.showMessage("Quit ...")
QApplication.quit()
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyMainWindow()
w.show()
app.exec_() |
Partager