Afin de pouvoir personnaliser votre classeur sans détruire le classeur sur lequel travaille votre voisin, vous allez tout d'abord aller dans le menu File puis Make a copy.... Renommez le classeur en ajoutant votre nom à la fin du nom de fichier par exemple.

Boutons radio

Le programme ci-dessous illustre l’utilisation des boutons radio pour créer un questionnaire type QCM. Un bouton radio est un bouton rond que l'on peut cocher pour indiquer un choix. Observez le résultat attendu :

In [2]:
from tkinter import *

def reponse():
    Texte.set('Votre réponse est -> ' + Reponse.get())

def autre_question():
    TexteA.set("Quatre pattes")
    TexteB.set("Deux pattes")
    TexteC.set("Six pattes")
    Texte.set("Combien avait-il de pattes ?")
    Reponse.set("")

Mafenetre = Tk()
Mafenetre.title('Questionnaire')

Texte = StringVar() # texte variable acceuillant la question
Texte.set("Quelle est la couleur du cheval blanc d'henry IV ?")

Reponse = StringVar() # texte variable accueillant la réponse

# Création d'un widget Label
LabelMessage = Label(Mafenetre, textvariable = Texte, fg ='red', bg ='white').pack()

# Création des textes pour les réponses
TexteA = StringVar()
TexteB = StringVar()
TexteC = StringVar()
TexteA.set("Blanc")
TexteB.set("Gris")
TexteC.set("Vert")

# Création des boutons radio
Radiobutton(Mafenetre,textvariable=TexteA,value="A",variable=Reponse).pack(anchor=W)
Radiobutton(Mafenetre,textvariable=TexteB,value="B",variable=Reponse).pack(anchor=W)
Radiobutton(Mafenetre,textvariable=TexteC,value="C",variable=Reponse).pack(anchor=W)

# Création des boutons
Bouton = Button(Mafenetre, text ='Répondre', command = reponse)
Bouton.pack(side=LEFT,padx=5,pady=5)

Bouton = Button(Mafenetre, text ='Autre', command = autre_question)
Bouton.pack(side=LEFT,padx=5,pady=5)

BoutonQuitter = Button(Mafenetre, text ='Quitter', command = Mafenetre.destroy)
BoutonQuitter.pack(side=LEFT,padx=5,pady=5)

Mafenetre.mainloop()

Explications

Attardons nous sur la nouveauté de cet exemple : les radio-bouttons. On les déclare par une ligne de ce type :

Radiobutton(Mafenetre,textvariable=TexteA,value="A",variable=Reponse)
  • Les textes variables TexteA, B et C servent à faire varier les intitulés des réponses en fonction des questions.
  • la réponse se fait également au moyen d'un texte variable : Reponse
  • Pour griser les boutons et ne pas proposer de réponse par défaut, on positionne la réponse à ""

Le reste est à présent classique. Les commentaires disséminés dans le programme doivent vous permettre de comprendre cet exemple.

In [ ]: