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