J'ai besoin d'aide pour mon projet de bac en isn, je fais un quiz de révision en histoire mais il me reste encore quelques problèmes à régler mais plus beaucoup de temps... Je voudrais par exemple que lorsque l'utilisateur clique sur un bouton pour réponse, le programme puisse vérifier qu'il a cliquer sur la bonne réponse est comptabiliser les points. Ou encore que lorsqu'il appuie sur la réponse, on passe à la question suivante du même chapitre. J'ai essayer plusieur méthodes mais aucune n'a aboutit. J'ai très peur de ne pas y parvenir avant l'écheance, aidez moi s'il vous plait !
from tkinter import * # importe la bibliothèque Tkinter qui permet la création d'interfaces graphiques.
from random import * # importe la fonction random qui sert pour le choix aléatoire des questions.
# Création des chapitres (chaque liste représente un chapitre):
#Fonction avec les questions sur Moyen Orient:
def choix_ch(theme):
"""
fonction permettant d'ouvrir le fichier avec le chapitre sur le Moyen Orient
"""
fichier=open(theme, "r",encoding="utf8")
liste_questions = fichier.readlines()
fichier.close()
nbre_questions = len(liste_questions)//5
choix_question = randint(0,nbre_questions - 1)
pos = 5* choix_question
question = [liste_questions[i] for i in range(pos,pos+4)]
item_widget["q"] = Label(cadreQuestion,bg="#FFFFFF",text=question[0])
item_widget["q"].pack()
item_widget["p1"]= Button(cadreQuestion, bg="#FFFFFF", text=question[1],
command= supp_bouton)
item_widget["p2"]= Button(cadreQuestion, bg="#FFFFFF", text=question[2],
command= supp_bouton)
item_widget["p3"]= Button(cadreQuestion, bg="#FFFFFF", text=question[3],
command=supp_bouton)
item_widget["p1"].pack()
item_widget["p2"].pack()
item_widget["p3"].pack()
return
boutonValiderTheme = Button (cadreQuestion, text="ENTRER", command = resultat_choix)
boutonValiderTheme.pack(padx=15, pady=15)
def M_O ():
choix_ch("Moyen_orient.txt")
answers =
#Fonction avec les questions sur La Seconde guerre mondiale
def SGM():
"""
fonction permettant d'ouvrir le fichier avec le chapitre sur
la Seconde guerre mondiale
"""
choix_ch("SGM.txt")
#Fonction avec les questions sur la Chine
def Chine():
"""
fonction permettant d'ouvrir le fichier avec le chapitre sur
la Chine
"""
choix_ch("Chine.txt")
return
#Fonction avec les questions sur les Etats unis
def USA ():
"""
fonction permettant d'ouvrir le fichier avec le chapitre sur les
Etats Unis
"""
choix_ch("usa.txt")
#Fonction avec les questions sur Gouverner la France
def gouv_France ():
"""
fonction permettant d'ouvrir le fichier avec le chapitre Gouverner
la France
"""
choix_ch("gouverner_france.txt")
#Fonction avec les questions sur Gouvernance Européenne
def gouv_Europe ():
"""
fonction permettant d'ouvrir le fichier avec le chapitre
gouvernance européenne
"""
choix_ch("gouvernance_européenne.txt")
#Fonction avec les questions sur la gouvernance mondiale
def gouv_monde ():
"""
fonction permettant d'ouvrir le fichier avec le chapitre sur la
Gouvernance économique mondiale
"""
choix_ch("gouvernance_eco_mondiale.txt")
#Fonction avec les questions sur la Mondialisation
def Mondialisation ():
"""
fonction permettant d'ouvrir le fichier avec le chapitre sur la
Mondialisation
"""
choix_ch("mondialisation.txt")
def supp_bouton ():
"""
"""
item_widget["q"].destroy()
item_widget["p1"].destroy()
item_widget["p2"].destroy()
item_widget["p3"].destroy()
# Création de la fenêtre principal.
# programme principal
item_widget = dict() # variable globale
fenetre=Tk()
fenetre.title('QUIZ BAC')
fenetre.geometry("1200x800")
fenetre.config(background="white")
fenetre.resizable(1,1)
#Création du cadre pour selectionner le thème.
cadre_Theme = Frame(fenetre, bg= "white", borderwidth=20,relief=SUNKEN)
# Affiche le cadreTheme.
cadre_Theme.grid(row=0, padx=20, pady=10, sticky =W)
# Affiche le titre dans le cadreTheme (qui sert de consigne au sein du cadre).
Label(cadre_Theme, text="Choisissez un chapitre:").pack(padx=50, pady=10)
# Création des boutons avec des valeurs pour choisir quelle matière réviser.
choix_theme = IntVar(value=0)
bt1 = Button(cadre_Theme, bg="#A4EFDE", text="Moyen-Orient", command=M_O)
bt2 = Button(cadre_Theme, bg="#89EBD5", text="2nd Guerre Mondiale", command=SGM)
bt3 = Button(cadre_Theme, bg="#67EDCF", text="Chine", command=Chine)
bt4 = Button(cadre_Theme, bg="#50A390" ,text="Etats-Unis", command=USA)
bt5 = Button(cadre_Theme, bg="#408374" ,text="Gouverner la France", command=gouv_France)
bt6 = Button(cadre_Theme, bg="#1A7E67", text="Gouvernance Européenne", command=gouv_Europe)
bt7 = Button(cadre_Theme, bg= "#206959",text="Gouvernance économique Mondiale ", command=gouv_monde)
bt8 = Button(cadre_Theme, bg="#1E473E", text="Mondialisation", command= Mondialisation)
# Affichage des boutons dans le "cadreTheme".
bt1.pack()
bt2.pack()
bt3.pack()
bt4.pack()
bt5.pack()
bt6.pack()
bt7.pack()
bt8.pack()
# Création du cadre pour les questions/Réponses.
cadreQuestion= Frame(bg="#B1FAEF", width=600, height=1200, borderwidth=0, relief=GROOVE)
# Affiche le cadreQuestion.
cadreQuestion.grid()
# Affiche le titre dans le cadreQuestion.
Label(cadreQuestion, text="Question :").pack()
# Canvas pour afficher la question.
my_question = Canvas(cadreQuestion, width=1200, height=0, background='#B1FAEF')
my_question.pack()
# Création d'un cadre pour afficher le score.
cadreScore = Frame(fenetre, background = "white", borderwidth=20, relief= SUNKEN)
# Affiche le cadreScore.
cadreScore.grid(row=0, column=0, padx=20, sticky =E)
# Affiche le titre du cadreScore.
Label(cadreScore, text="Score :").pack(padx=20, pady=20)
# Création d'un cadre dans le "cadreScore" pour Afficher le nombre de bonne réponse.
cadreVrai = Frame(cadreScore, bg="lightgreen", borderwidth=2, relief=GROOVE)
# Affiche le cadreVrai.
cadreVrai.pack(side=LEFT, padx=10, pady=10)
# Affiche le titre du cadreVrai.
Label(cadreVrai, text="Vrai : )", bg="lightgreen").pack(padx=15, pady=15)
compteur1 = 0 # Compteur de bonnes réponses
def inc1():
val = infos['valeur']
v += 1
infos['valeur'] = val
my_bonnrep.itemconfig(text, text=int(val))
infos = {'valeur': compteur1, }
my_bonnrep = Canvas(cadreVrai, width=20, height=20)
my_bonnrep.pack()
# Création d'un cadre dans le "cadreScore" pour afficher le nombre de mauvaise réponse.
cadreFaux = Frame(cadreScore, bg="salmon", borderwidth=2, relief=GROOVE)
# Affiche le cadreFaux.
cadreFaux.pack(side=LEFT, padx=10, pady=10)
# Affiche le titre du cadreFaux.
Label(cadreFaux, text="Faux :<", bg="salmon").pack(padx=15, pady=15)
compteur2 = 0 # Compteur de mauvaises réponses
def inc2():
val = infos['valeur']
v += 1
infos['valeur'] = val
my_mauvrep.itemconfig(text, text=int(val))
infos = {'valeur': compteur2, }
my_mauvrep = Canvas(cadreFaux, width=20, height=20)
my_mauvrep.pack()
# Création d'un cadre dans le "cadreScore" pour afficher le pourcentage de bonne réponse.
cadreSoit = Frame(cadreScore, bg="#FF1E4A", borderwidth=2, relief=GROOVE)
# Affiche le cadreSoit.
cadreSoit.pack(side=LEFT, padx=10, pady=10)
# Affiche le titre du cadreSoit.
Label(cadreSoit, text="TOTAL :", bg="white").pack(padx=15, pady=15)
cpt2 = 0 # Compteur de mauvaises réponses
def inc2():
val = infos['valeur']
v += 1
infos['valeur'] = val
my_mauvrep.itemconfig(text, text=int(val))
infos = {'valeur': cpt2, }
my_mauvrep = Canvas(cadreSoit, width=20, height=20)
my_mauvrep.pack()
mainloop()
BESOIN D'AIDE QUIZ POUR LE BAC
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.