Tutoriel Tkinter - Bouton de contrôle

  1. Exemple de base de bouton de contrôle Tkinter
  2. Bouton de contrôle Tkinter Sélectionner/Désélectionner
  3. Basculement de l’état du bouton de contrôle Tkinter
  4. Liaison des fonctions de rappel des boutons de contrôle Tkinter
  5. Changer la valeur par défaut de Tkinter Checkbutton

Le widget Checkbutton est un widget contenant une valeur. Les checkbuttons peuvent contenir du texte ou des images. Il pourrait aussi lier la fonction de rappel à appeler lorsque le bouton de contrôle est cliqué.

Pour créer un widget de bouton de contrôle dans une fenêtre parentale existante, utilisez

tk.Checkbutton(parent, option, ...)

Exemple de base de bouton de contrôle Tkinter

Tkinter CheckButton_Basic.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.BooleanVar() 
chkValue.set(True)
 
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue) 
chkExample.grid(column=0, row=0)
 
app.mainloop()

Tkinter Tutorial Checkbutton Exemple de base

chkValue = tk.BooleanVar() 

Chaque bouton de contrôle doit être associé à une variable. Le type de données de la variable est déterminé par le bouton de contrôle lorsqu’il est sélectionné/désélectionné.

chkValue.set(True)

Il définit la valeur d’origine du bouton de contrôle. Comme il est juste assigné avec le type de données boolean, vous n’avez que deux options ici, True ou False.

chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue) 

Maintenant, l’instance du bouton de contrôle est finalement créée avec la variable chkValue que nous avons créée ci-dessus.

chkExample.grid(column=0, row=0)

grid est un autre type de gestionnaire de disposition Tkinter en plus du pack introduit dans la section Tkinter Label.

Tkinter a trois gestionnaires de disposition/géométrie,

  • pack
  • grid
  • place

Nous allons présenter ces gestionnaires de disposition/géométrie dans une section de ce tutoriel.

Bouton de contrôle Tkinter Sélectionner/Désélectionner

L’utilisateur peut cliquer sur le bouton de contrôle dans l’interface graphique pour sélectionner ou désélectionner le bouton. Vous pouvez aussi sélectionner ou désélectionner le bouton de contrôle en utilisant les méthodes select() et deselect().

chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.select()
print "The checkbutton value when deselected is {}".format(chkValue.get())
The checkbutton value when selected is True
The checkbutton value when deselected is False

Ici, la valeur du bouton de contrôle est obtenue par la méthode get().

Basculement de l’état du bouton de contrôle Tkinter

L’état du bouton de vérification peut être modifié par select() et deselect(), et il peut aussi être basculé en utilisant la méthode toggle().

Tkinter CheckButton_Select_Deselect.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.BooleanVar() 
chkValue.set(True)
 
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue) 
chkExample.grid(column=0, row=0)


print "The checkbutton original value is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled twice is {}".format(chkValue.get())

app.mainloop()
The checkbutton original value is True
The checkbutton value after toggled is False
The checkbutton value after toggled twice is True

Liaison des fonctions de rappel des boutons de contrôle Tkinter

Le widget Checkbutton est utilisé pour sélectionner les états et il peut également lier la fonction de rappel à l’événement lorsqu’il est sélectionné/désélectionné, ou plus simplement, basculé. Chaque fois que l’état du bouton de contrôle est basculé, la fonction de rappel est déclenchée.

Tkinter CheckButton_CallBack.py
import tkinter as tk
from _cffi_backend import callback
 
def callBackFunc():
    print "Oh. I'm clicked"
    
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.BooleanVar() 
chkValue.set(True)
 
chkExample = tk.Checkbutton(app, text='Check Box', 
                            var=chkValue, command=callBackFunc) 
chkExample.grid(column=0, row=0)

app.mainloop()

Chaque fois que vous appuyez sur le bouton de contrôle, vous pouvez voir qu’il affiche Oh. I'm clicked dans la console.

L’option command dans la classe Checkbutton est destinée à lier la fonction ou la méthode de rappel lorsque le bouton est pressé.

Changer la valeur par défaut de Tkinter Checkbutton

La valeur par défaut correspondant au bouton non sélectionné est 0, et la valeur par défaut du bouton sélectionné est 1. Et vous pouvez également changer les valeurs par défaut des boutons et leur type de données associé à l’autre valeur et/ou type de données.

Tkinter CheckButton_Select_OnValue_OffValue.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.StringVar() 
 
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue,
                            onvalue="RGB", offvalue="YCbCr") 
chkExample.grid(column=0, row=0)

chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.deselect()
print "The checkbutton value when deselected is {}".format(chkValue.get())

app.mainloop()

The checkbutton value when selected is RGB
The checkbutton value when deselected is YCbCr
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue,
                            onvalue="RGB", offvalue="YCbCr") 

Les options onvalue et offvalue permettent de modifier les valeurs des états sélectionnés et non-sélectionnés. Ils peuvent avoir des types de données comme Int, String, Float ou autres.

Attention

Le type de données Tkinter associé au bouton de contrôle doit être le même que celui de onvalue et offvalue. Sinon, il rapporte _tkinter.TclError.