Faire un bouton valider QCM

[Résolu/Fermé]
Signaler
Messages postés
34
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 juin 2016
-
Messages postés
34
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 juin 2016
-
Bonjour, je suis débutante dans le domaine de la programmation, et c'est pourquoi je sollicite votre aide. Je souhaite réaliser un QCM. La première version sera simple. Il s'agit de poser une question, de demander à l'utilisateur de choisir une réponse et que en cliquant sur un bouton valider le programme dise si la réponse est bonne ou pas. Et c'est sur ce dernier point que je bloque.

Je vous mais le début de programme:

from tkinter import*

fen=Tk()
t=Label(fen,text="Combien y a t il de couleurs sur le drapeau français?")
t.pack()

Réponse1 = Checkbutton(fen, text="2")
Réponse1.pack()
Réponse2 = Checkbutton(fen, text="3")
Réponse2.pack()

fen.mainloop()

Merci de votre aide.

3 réponses

Messages postés
9018
Date d'inscription
dimanche 22 août 2010
Statut
Contributeur
Dernière intervention
23 octobre 2020
2 495
Bonjour
peux-tu stp utiliser le bouton "code" dans l'éditeur de message pour afficher ton code et aussi expliquer ton code ? Merci.
Messages postés
34
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 juin 2016

Voilà:


from tkinter import*

fen=Tk()
Question=Label(fen,text="Combien y a t il de couleurs sur le drapeau français?")
Question.pack()

Réponse1 = Checkbutton(fen, text="2")
Réponse1.pack()
Réponse2 = Checkbutton(fen, text="3")
Réponse2.pack()

fen.mainloop()


Tkinter sert à ouvrir une fenêtre
La question est posée dans "Label"
Checkbutton permet de faire une case à cocher
Messages postés
9018
Date d'inscription
dimanche 22 août 2010
Statut
Contributeur
Dernière intervention
23 octobre 2020
2 495
Tu pourrais utiliser le paramètre command lorsque tu définis les chekbutton. En ainsi exécuter du code lorsque le bouton est cliqué.

Un exemple : https://stackoverflow.com/questions/6469254/tkinter-checkbutton-doesnt-change-my-variable/6469789#6469789
La méthode cb() est affectée au CheckButton grâce au paramètre command
Messages postés
34
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 juin 2016
> Utilisateur anonyme
Oui ça marche!

from tkinter import *

fen=Tk()

def cb(a):
if a == "Bonne reponse":
Resultat["text"] = "Bonne reponse"

elif a == "Mauvaise reponse":
Resultat["text"] = "Mauvaise reponse"

Question=Label(fen,text="Combien y a t il de couleurs sur le drapeau francais?")
Question.pack()

Reponse1 = Checkbutton(fen, text="2", command=lambda:cb("Mauvaise reponse"))
Reponse1.pack()
Reponse2 = Checkbutton(fen, text="3", command=lambda:cb("Bonne reponse"))
Reponse2.pack()

Resultat=Label(fen)
Resultat.pack()

fen.mainloop()


Je me permet de poser une dernière petite question: Est-il possible de faire en sorte que cocher deux cases en même temps sot impossible?
Utilisateur anonyme
Oui, va voir du côté des radioboutons
Messages postés
34
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 juin 2016
> Utilisateur anonyme
Oui j'ai regardé mais j'ai pas vraiment compris...
Utilisateur anonyme
from Tkinter import *

def sel():
   selection = "You selected the option " + str(var.get())
   label.config(text = selection) # label["text"] = selection similaire

root = Tk()

var = IntVar()
R1 = Radiobutton(root, text="Option 1", variable=var, value=1,command=sel)
R1.pack()

R2 = Radiobutton(root, text="Option 2", variable=var, value=2,command=sel)
R2.pack()

R3 = Radiobutton(root, text="Option 3", variable=var, value=3,command=sel)
R3.pack()

label = Label(root)
label.pack()
root.mainloop()


Malheureusement, je crois qu'on ne peut pas échapper au IntVar() ici ...
Messages postés
34
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 juin 2016
> Utilisateur anonyme
Merci beaucoup, je vais essayer de me débrouiller avec ça.