Je sais comment faire une image un bouton dans Tkinter, maintenant comment puis-je faire de cette image un bouton bascule similaire à un bouton radio?Faire un bouton bascule avec une image dans Tkinter
Répondre
Utilisez une case à cocher avec "indicatoron" défini sur False. Cela désactivera la petite case à cocher afin que vous ne voyiez que l'image (ou le texte), et le relief basculera entre élevé et enfoncé chaque fois que vous cliquez dessus.
Une autre façon est d'utiliser un widget d'étiquette et de gérer les clics sur le bouton vous-même. Ajouter une reliure pour et changer le relief pour l'enfoncer s'il est soulevé, et relevé s'il est enfoncé. Il est plus facile d'utiliser les fonctions intégrées de la case à cocher, car elle gère également la traversée clavier, l'activation, etc.
Pour une raison quelconque, tkinter
m'a dit qu'il ne connaîtrait pas l'option indicatoron
. Mais heureusement, il existe une autre façon d'obtenir un comportement de bascule: Les widgets ttk::button
, ttk::checkbutton
et ttk::radiobutton
prennent en charge un style "Toolbutton"
. Dans le cas de ttk::checkbutton
et ttk::radiobutton
, cela les fait se comporter comme un bouton à bascule et peut même être utilisé pour créer des boutons mutuellement exclusifs en utilisant ttk::radiobutton
.
import tkinter # use "import Tkinter" for python 2
from tkinter import ttk # use "import ttk" for python 2
tk = tkinter.Tk()
toggleBtn = ttk.Checkbutton(tk, text = 'Toogle me!', style = 'Toolbutton')
toggleBtn.pack()
tk.mainloop()