Tutoriel Tkinter - Bouton radio
- Tkinter Radiobouton Exemple de base
- Bouton radio Tkinter - Obtenir une valeur
- Changer le type d’indicateur de bouton radio Tkinter
- Fonction de rappel du bouton radio Bind Tkinter
Vous avez appris label, button et Checkbutton dans les dernières sections. Les widgets Tkinter ont des options, propriétés ou méthodes assez similaires, donc à partir de cette section, nous pourrions apprendre à un rythme rapide.
Le Radiobuton est un bouton de type unique. Il a plus d’une option dans la sélection, mais l’utilisateur ne peut sélectionner qu’une seule d’entre elles. Comme les widgets introduits auparavant, le Radibuton peut contenir du texte ou des images et peut y associer une fonction ou une méthode de rappel. Cette fonction de rappel se déclenche automatiquement lorsque l’on appuie sur ce bouton.
Tkinter Radiobouton Exemple de base
import tkinter as tk
app = tk.Tk()
app.geometry("150x100")
radioValue = tk.IntVar()
rdioOne = tk.Radiobutton(app, text="January", variable=radioValue, value=1)
rdioTwo = tk.Radiobutton(app, text="Febuary", variable=radioValue, value=2)
rdioThree = tk.Radiobutton(app, text="March", variable=radioValue, value=3)
rdioOne.grid(column=0, row=0)
rdioTwo.grid(column=0, row=1)
rdioThree.grid(column=0, row=2)
app.mainloop()
Le résultat de la démo de base de Radiobutton ci-dessus est le suivant
radioValue = tk.IntVar()
Tout comme le bouton de contrôle, les boutons radio doivent associer des valeurs d’un type de données particulier.
rdioOne = tk.Radiobutton(app, text="January", variable=radioValue, value=1)
rdioTwo = tk.Radiobutton(app, text="Febuary", variable=radioValue, value=2)
rdioThree = tk.Radiobutton(app, text="March", variable=radioValue, value=3)
Ici, des boutons avec le texte de January
, Febuary
et March
sont créés ici. Les boutons radio du même groupe doivent avoir des valeurs uniques.
Bouton radio Tkinter - Obtenir une valeur
Les boutons radio du même groupe partagent la même variable, radioValue
comme montré dans l’exemple ci-dessus, et sont assignés avec des valeurs différentes avec l’option value
.
La valeur du bouton radio sélectionné met automatiquement à jour la variable radioValue
qui est un tk.IntVar
.
Le texte de l’étiquette reflète automatiquement la valeur du bouton sélectionné dans les codes de l’exemple ci-dessous.
import tkinter as tk
app = tk.Tk()
app.geometry("200x100")
radioValue = tk.IntVar()
rdioOne = tk.Radiobutton(app, text="January", variable=radioValue, value=0)
rdioTwo = tk.Radiobutton(app, text="Febuary", variable=radioValue, value=1)
rdioThree = tk.Radiobutton(app, text="March", variable=radioValue, value=2)
rdioOne.grid(column=0, row=0, sticky="W")
rdioTwo.grid(column=0, row=1, sticky="W")
rdioThree.grid(column=0, row=2, sticky="W")
labelValue = tk.Label(app, textvariable=radioValue)
labelValue.grid(column=2, row=0, sticky="E", padx=40)
app.mainloop()
La variable-texte
de l’étiquette labelValue
est la même avec l’option variable
des boutons radio, de sorte que le texte de l’étiquette puisse se mettre à jour automatiquement.
Changer le type d’indicateur de bouton radio Tkinter
L’indicateur de bouton radio par défaut est un trou circulaire avec un espace blanc à l’intérieur, mais il pourrait aussi être remplacé par une boîte contenant du texte ou une image. La zone de texte est en relief lorsque le bouton radio n’est pas sélectionné et en creux lorsqu’on appuie dessus.
rdioOne = tk.Radiobutton(
app, text="I am raised", variable=radioValue, value=1, indicatoron=0
)
L’indicateur est l’option qui permet d’activer ou de désactiver l’indicateur de trous circulaires du bouton de raido. indicatoron
=indicator on
Fonction de rappel du bouton radio Bind Tkinter
C’est exactement la même chose avec [Tkinter Checkbutton](/fr/tutorial/tkinter-tutorial/tkinter-checkbutton/#Tkinter Checkbutton Callback Function Binding) dans l’option comment définir la fonction de rappel des boutons. Utilisez l’option command=
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook