86 lines
No EOL
3.6 KiB
Python
86 lines
No EOL
3.6 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Created on Thu Jul 6 14:02:21 2017
|
|
|
|
@author: fh
|
|
"""
|
|
import numpy as np
|
|
import sys
|
|
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QGridLayout, QLabel, QLineEdit, QCheckBox, QGroupBox
|
|
from PyQt5.QtCore import Qt
|
|
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
|
|
from matplotlib.figure import Figure
|
|
import matplotlib.pyplot as plt
|
|
class Bidule(QWidget):
|
|
def __init__(self):
|
|
QWidget.__init__(self)
|
|
self.setWindowTitle("Le bidule")#Titre de boîte
|
|
self.resize(250,250)#Taille de boîte
|
|
self.boite=QVBoxLayout()#Boîte verticale
|
|
self.fig = Figure()#Créer une figure.
|
|
self.axes1 = self.fig.add_subplot(121)#Figure1
|
|
self.axes2=self.fig.add_subplot(122)#Figure2
|
|
self.x1=np.linspace(-np.pi,np.pi)
|
|
self.x2=np.linspace(1,100)
|
|
self.y1=np.cos(self.x1)**2-np.sin(self.x1)
|
|
self.y2=np.exp(-self.x2**2)
|
|
self.line1,=self.axes1.plot(self.x1,self.y1)
|
|
self.line2,=self.axes2.plot(self.x2,self.y2)
|
|
self.canvas=FigureCanvas(self.fig)#Toile portant la figure de Matplotlib.
|
|
self.layout.addWidget(self.canvas)
|
|
self.setLayout(self.boite)#Placer boîte
|
|
self.soustitre=QLabel("Boîte à bouttons")#Sous-titre de sous-boîte
|
|
self.soustitre.setMaximumSize(200,15)#Taille de sous-titre
|
|
self.boite.addWidget(self.soustitre)#Placer sous-titre
|
|
self.sousboite=QGridLayout()#Sous-boîte en matrice pour les bouttons
|
|
self.boite.addLayout(self.sousboite)#Placer sous-boîte
|
|
self.bouttons=[]#Liste des bouttons vide
|
|
self.numeros=[]#Liste des numéros vide
|
|
self.appuyer=[]
|
|
for l in range(5):
|
|
self.bouttons+=[[]]#Lignes de bouttons
|
|
self.numeros+=[[]]#Lignes de numéros
|
|
self.appuyer+=[[]]
|
|
for c in range(5):
|
|
self.bouttons[l]+=[QPushButton()]#Colonnes de bouttons
|
|
self.numeros[l]+=["{}{}".format(l,c)]#Colonnes de numéros
|
|
self.appuyer[l]+=[np.sin]
|
|
self.bouttons[l][c].setMaximumSize(30,30)#Taille des bouttons
|
|
self.bouttons[l][c].setText(self.numeros[l][c])#Numéros des bouttons
|
|
self.sousboite.addWidget(self.bouttons[l][c],l,c)#Placer tous les bouttons
|
|
def appui():
|
|
if self.bouttons[l][c].clicked!=QPushButton.clicked:
|
|
if self.numeros[l][c] == self.bouttons[l][c].text():
|
|
self.bouttons[l][c].setText("["+self.numeros[l][c]+"]")
|
|
else:
|
|
self.bouttons[l][c].setText(self.numeros[l][c])
|
|
self.appuyer[l][c]=appui
|
|
self.bouttons[l][c].clicked.connect(self.appuyer[l][c])#Connection entre bouttons et "appuyer"
|
|
self.show()#Afficher.
|
|
'''
|
|
def appuyer(self):
|
|
n=self.numeros
|
|
t=[]
|
|
for l in range(len(self.bouttons)):
|
|
t+=[[]]
|
|
for c in range(len(self.bouttons[0])):
|
|
t[l]+=[self.bouttons[l][c].text()]
|
|
for l in range(len(self.bouttons)):
|
|
for c in range(len(self.bouttons[0])):
|
|
if self.bouttons[l][c].clicked==QPushButton.clicked:
|
|
if n[l][c]==t[l][c]:
|
|
self.bouttons[l][c].setText("["+n[l][c]+"]")
|
|
else:
|
|
self.bouttons[l][c].setText(n[l][c])
|
|
'''
|
|
|
|
|
|
def ouvrirBidule():
|
|
app = QApplication.instance()
|
|
if not app:
|
|
app = QApplication(sys.argv)
|
|
objet = Bidule()
|
|
objet.show()
|
|
app.exec_()
|
|
ouvrirBidule() |