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
   |  
# Création d'une fenetre pour afficher les flash cards affichant une image et 4 informations
# en utilisant les objets
# Tutoriel sur les objets : https://www.youtube.com/watch?v=dfUM_9xibf8
# Import de la bibliothèque TKinter
from tkinter import *
 
########################
#    Partie logique    #
########################
 
# Création d'une "classe" contenant les information d'une "flash card"
class FlashCard:
 
    def __init__(self, num, pers, act, obj):   # Constructeur de classe
        self.num = num          # Création d'un nouvel attribut qui se verra affecter la valeur de la variable
        self.pers = pers
        self.act = act
        self.obj = obj
        # self.img = img        # Pour plus tard
 
    def get_num(self):          # Création d'une méthode (fonction dans une classe) "Geter" ou "Assesseur" dans ce cas, pour récupérer une info
        return self.num
 
    def get_pers(self):
        return self.pers
 
    def get_obj(self):
        return self.obj
 
    def get_act(self):
        return self.act
 
    def incr_num(self):         # Création d'une méthode : un "Seter" ou "Mutateur" dans ce cas pour modifier une info
        self.num += 1
 
    def decr_num(self):
        self.num -= 1
 
 
# Création de listes contenant les données à afficher
liste_pers = ["Dompteur", "Adam", "Lucy", "Pythagore", "Français", "Mime"]
liste_obj = ["Des anneaux pour sauter", "Une pomme", "Un gourdin", "Une équère", "Une baguette", "Des gants blancs"]
liste_act = ["Dompter un fauve", "Manger une pomme", "Taper avec un gourdin", "Mesurer un angle", "Manger une baguette", "Mimer en silence"]
 
# Variable permettant de choisir quelle carte sera affichée
i = 0
 
 
# Fonction permettant d'incrémenter le numéro de la carte à afficher
def incr_i():
    global i
    i += 1
 
 
# Instance de classe
carte_i = FlashCard(i, liste_pers[i], liste_obj[i], liste_act[i])
 
print("Cartes en mémoire : ")
 
##########################
#    Partie affichage    #
##########################
 
# Création d'une fenêtre TK
root = Tk()
# Définir la couleur de fond de la fenêtre
root.configure(bg="white")
 
 
# Création d'une fonction d'affichage d'une fenêtre contenant les textes de la classe
def affiche_cart():
 
    num_carte = Label(root, text=str(carte_i.get_num()), bg="white", width=5, font=("Courier Bold", 30))      # Création d'un Label
    pers_carte = Label(root, text=str(carte_i.get_pers()), bg="#f2f8a7", width=25)
    obj_carte = Label(root, text=str(carte_i.get_obj()), bg="#b7e8e6", width=25)
    act_carte = Label(root, text=str(carte_i.get_act()), bg="#d8b7e8", width=25)
    btn_next = Button(root, text="Suivant >", command=incr_i())
 
    num_carte.pack(padx=10, pady=10)           # Placement du Label
    pers_carte.pack(padx=10, pady=10)
    obj_carte.pack(padx=10, pady=10)
    act_carte.pack(padx=10, pady=10)
    btn_next.pack(padx=10, pady=10)
 
    root.mainloop()
 
 
print("Personnes : ", liste_pers)
print("Actions : ", liste_act)
print("Objets : ", liste_obj)
 
# Appel de la fonction d'affichage de la carte correspondant à i
affiche_cart() | 
Partager