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 133 134 135 136 137 138 139 140 141 142
| # -*- coding: cp1252 -*-
from Tkinter import *
class Question:
"""Classe définissant une question :
- son énoncé
- sa réponse 1
- sa réponse 2
- sa réponse 3
- sa réponse juste"""
def __init__(self, enonce="", rep1="", rep2="", rep3="", repjuste=""):
self.enonce = enonce
self.rep1 = rep1
self.rep2 = rep2
self.rep3 = rep3
self.repjuste = repjuste
# end def
# end class Question
#permet d'afficher avec print
def __str__(self):
return "enonce=%s ; rep1=%s ; rep2=%s ; rep3=%s ; repJuste=%s" % (self.enonce, self.rep1, self.rep2, self.rep3, self.repjuste)
# création de la fenetre principale pour l'enregistrement de question/réponses
Fen1 = Tk()
# titre donné à la fenêtre
Fen1.title(u"Création question")
# création d'un compteur du nombre de questions
nb_question = 1
# création de la liste qui servira à stocker les questions
liste_questions = list()
message_numero_question= StringVar()
# création d'une étiquette qui indiquera le numéro de la question
message_numero_question.set(u"Question numéro {}".format(nb_question))
Label(Fen1,textvariable = message_numero_question,
bg="red",
fg="white",
font="serif 12 bold italic").pack(expand=1, fill=X)
#Pour l'énoncé
Af1=Label(Fen1,text=u"Veuillez entrer l'énoncé de votre question :".pack() #affichage immédiat
# zone de saisie de l'énoncé
Ent_enonce = Entry(Fen1)
#affichage immédiat avec .pack()
Ent_enonce.pack()
#Pour les réponses
Af2=Label(Fen1,text=u"Réponse numéro A :").pack()
Ent_rep1 = Entry(Fen1)
Ent_rep1.pack()
Af3=Label(Fen1,text=u"Réponse numéro B :").pack()
Ent_rep2 = Entry(Fen1)
Ent_rep2.pack()
Af4=Label(Fen1,text=u"Réponse numéro C :").pack()
Ent_rep3 = Entry(Fen1)
Ent_rep3.pack()
Af5=Label(Fen1,text=u"Veuillez saisir la lettre de la bonne réponse :").pack()
Ent_repjuste = Entry(Fen1)
Ent_repjuste.pack()
# je récupère les données des zones de saisie
def verifier():
enonce = Ent_enonce.get()
rep1 = Ent_rep1.get()
rep2 = Ent_rep2.get()
rep3 = Ent_rep3.get()
repjuste = entree_repjuste.get()
# formulaire incomplet
if enonce=="" or rep1=="" or rep2=="" or rep3=="" or repjuste=="":
# masquer le bouton d'enregistrement
bouton_enregistrer.pack_forget()
Af6.configure(text= u"Vous n'avez pas rempli toutes les cases" )
# tout est rempli:
else:
# montrer le bouton d'enregistrement
bouton_enregistrer.pack()
# end if
# end def
# Enregistrement des données
def enregistrer():
global nb_question
# enregistrement des questions dans la liste.
liste_questions.append(Question(enonce = Ent_enonce.get(),
rep1 = Ent_rep1.get(),
rep2 = Ent_rep2.get(),
rep3 = Ent_rep3.get(),
repjuste = Ent_repjuste.get()))
# effacement des zones de saisie
Ent_enonce.delete(0, END)
Ent_rep1.delete(0, END)
Ent_rep2.delete(0, END)
Ent_rep3.delete(0, END)
Ent_repjuste.delete(0, END)
# je passe à la question suivante
nb_question += 1
#mise a jour de l'étiquette
message_numero_question.set(u"Question numéro {}".format(nb_question))
# masquer le bouton d'enregistrement
bouton_enregistrer.pack_forget()
# end def
#fermeture de la fenêtre
def fermer():
enonce = Ent_enonce.get()
Question.enonce = enonce
rep1 = Ent_rep1.get()
Question.rep1 = rep1
rep2 = Ent_rep2.get()
Question.rep2 = rep2
rep3 = Ent_rep3.get()
Question.rep3 = rep3
repjuste = Ent_repjuste.get()
Question.repjuste = repjuste
print"last question=", Question
Q = Question(Question.enonce, Question.rep1, Question.rep2, Question.rep3, Question.repjuste)
liste_Questions.append(Q)
Fen1.destroy()
#End def
# création des boutons
# bouton 'Vérifier'
bouton_verifier = Button(Fen1,text=u"Vérifier",command=verifier,)
bouton_verifier.pack()
# bouton 'Enregistrer'
bouton_enregistrer = Button(Fen1,text=u"Enregistrer ma question",command=enregistrer)
#On ne l'affiche pas immediatement
# bouton 'Fermer'
bouton_fermer = Button(Fen1ntext=u"Fermer la fenêtre",command=fermer)
bouton-fermer.pack()
fenetre.mainloop()
#affiche les questions sauvegardees dans la liste
for index in range(len(liste_question)):
print liste_questions[index] |
Partager