Afin de pouvoir personnaliser votre classeur sans détruire le classeur sur lequel travaille votre voisin, vous allez tout d'abord aller dans le menu File puis Make a copy.... Renommez le classeur en ajoutant votre nom à la fin du nom de fichier par exemple.

Minis projets

Vous choisirez un mini projet parmi les deux proposés. Si vous avez le temps, vous pourrez vous amuser à réaliser les deux :)

L'objectif est de découvrir de nouveaux composants graphiques (Widgets) et d'utiliser la doc pour connaitre les principales méthodes et signaux à utiliser pour mener à bien votre projet.

Vous décvouvrirez aussi une nouvelle manière de disposer vos widgets dans la fenêtre grâce à une grille (QGridLayout)

Lien vers la doc

On commence bien sûr par rappeler le lien vers la doc PySide...

https://deptinfo-ensip.univ-poitiers.fr/ENS/pyside-docs/index.html

On importe les librairies Qt comme d'habitude

In [ ]:
from PySide.QtCore import *
from PySide.QtGui import *
import sys

Projet A : calcul d'intérêts cumulés

Nous souhaitons réaliser une application de calcul d'intérêts :

Capture

Il n'y a pas de bouton valider sur cette interface. Cela signifie que le calcul devra se faire automatiquement lorsqu'on validera le champ Montant ou que l'on changera une valeur dans le taux ou le nombre d'années.

Le nombre d'années est une liste déroulante proposant "1 année", "2 années" ou "3 années"

Voici quelques indications pour réaliser ce mini projet :

L'interface utilisateur

L'interface est structurée comme une grille de 4 lignes et deux colonnes. Vous pourrez utiliser un QGridLayout. L'idée est de disposer vos éléments comme le montre le tableau ci-dessous :

\ 0 1
0 montant champ
1 taux Spinbox
3 Durée Liste
4 Intérêts Résultat

Voici un exemple d'utilisation. On passe en argument le rang et la colonne dans la grille :

     layout=QGridLayout()
     ...
     layout.addWidget(self.tauxLabel,1,0)
     ...
     self.setLayout(layout)
 

Les différents composants

Vous rencontrerez de nouveaux composants sur ce mini projet. L'objectif est de vous faire utiliser le manuel pour connaître les priincipales méthodes et signaux à utiliser. Parmi les nouveautés, vous aurez besoin :

  • d'un SpinBox affichant des nombres décimaux. C'est le widget QDoubleSpinBox - RTFM
  • d'une liste déroulante. C'est le widget QComboBox - RTFM

La formule de calcul des intérêts

Voici la formule utilisée pour calculer les intérêts cumulés au bout de plusieurs années :

  • $x$ désigne la somme totale empruntée
  • $t$ désigne le taux annuel en pourcentage
  • $n$ désigne le nombre d'années

Alors les intérêts cumulés se calculent par $i=x\times \left(1+\dfrac{t}{100}\right)^n$

La capture d'écran vous permettra de vérifier votre formule

In [ ]:
# Ecrivez votre classe MainWindow ici
In [ ]:
try:
    app = QApplication(sys.argv)
except RuntimeError:
    app=QApplication.instance()
form = MainWindow()
form.show()
app.exec_()

Projet B : calcul d'emprunt

Nous souhaitons réaliser une application de calcul d'emprunt :

Capture

Le champ taux est connecté à la roue (leurs valeurs restent synchronisées quand on change l'un ou l'autre) et le champ nombre d'années est connecté au curseur.

Voici quelques indications pour réaliser ce mini projet :

L'interface utilisateur

L'interface commence ici à être un peu complexe... Vous pourrez utiliser un QGridLayout. L'idée est de disposer vos éléments dans une grille comme le montre le tableau ci-dessous :

\ 0 1 2
0 montant champ
1 taux Spinbox roue
2 nb années Spinbox curseur
3 Bouton
4 Montant/mois Résultat

Voici un exemple d'utilisation. On passe en argument le rang et la colonne dans la grille :

     layout=QGridLayout()
     ...
     layout.addWidget(self.tauxLabel,1,0)
     ...
     self.setLayout(layout)
 

Les différents composants

Vous rencontrerez de nouveaux composants sur ce mini projet. L'objectif est de vous faire utiliser le manuel pour connaître les priincipales méthodes et signaux à utiliser. Parmi les nouveautés, vous aurez besoin :

  • d'une roue de type bouton de volume. C'est le widget QDial - RTFM
  • d'un curseur. C'est le widget QSlider - RTFM
  • d'un afficheur LED. C'est le composant QLCDNumber - RTFM

La formule de calcul de la mensualité !

Voici la formule utilisée pour calculer la somme à payer tous les mois :

  • $x$ désigne la somme totale empruntée
  • $t$ désigne le taux par mois en pourcentage (taux global/12)
  • $n$ désigne le nombre de mois

Alors la somme à rembourser tous les mois est calculée par $s=x\times \dfrac {t} {100}\left( \dfrac{\left(1+\dfrac{t}{100}\right)^n}{\left(1+\dfrac{t}{100}\right)^n-1} \right)$

La capture d'écran vous permettra de vérifier votre formule

In [ ]:
# Ecrivez votre classe MainWindow ici
In [ ]:
try:
    app = QApplication(sys.argv)
except RuntimeError:
    app=QApplication.instance()
form = MainWindow()
form.show()
app.exec_()
In [ ]: