Bonjour,
Suite à une discussion récente du forum pourtant sur la confusion entre attributs et options d'un Widget Tkinter je vous propose de rajouter dans la FAQ ce qui suit.
---
---Comment connaître et utiliser les options d'un Widget ?
dir(widget) ne retourne que la liste des attributs de la classe Python permettant de gérer un Widget, pour connaître la liste des noms des options d'un Widget vous devez utiliser widget.keys().
Pour obtenir sous la forme d'un dictionnaire, ou la clé est le nom de l'option sous la forme d'un string et la valeur celle de l'option, vous devez utilise widget.configure() ou widget.config(), ce qui est strictement la même chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>> import Tkinter as Tk >>> l = Tk.Label() >>> l.keys() ['activebackground', 'activeforeground', 'anchor', 'background', 'bd', 'bg', 'bitmap', 'borderwidth', 'compound', 'cursor', 'disabledforeground', 'fg', 'font', 'foreground', 'height', 'highlightbackground', 'highlightcolor', 'highlightthickness', 'image', 'justify', 'padx', 'pady', 'relief', 'state', 'takefocus', 'text', 'textvariable', 'underline', 'width', 'wraplength']
Pour connaître la valeur d'une option utilisez widget.cget('NomDelOption'), widget['NomDelOption'], widget.config('NomDelOption') ou encore widget.configure('NomDelOption').
widget.cget('NomDelOption') est la méthode conseillée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 >>> l = Tk.Label() >>> l['width'] 0 >>> l.cget('width') 0 >>> l.config('width') ('width', 'width', 'Width', 0, 0)
A noter que Tkinter supporte les erreurs de syntaxe.
Pour modifier une option vous pouvez utiliser widget['NomDelOption'] = Valeur, widget.config(NomDelOption=Valeur) ou widget.configure(NomDelOption=Valeur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 >>> l.configure('widt') ('width', 'width', 'Width', 0, 10)
widget.config(NomDelOption=Valeur) (et .configure() qui est exactement la même chose) est la méthode conseillée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>> l = Tk.Label() >>> l.configure(width=10) >>> l.config(width=10) >>> l['width'] = 10
Vous pouvez, bien sur, aussi spécifier l'option lors de la création de l'instance, sous la forme NomDelInstance = ClasseTkinter(Option=Valeur)
Code : Sélectionner tout - Visualiser dans une fenêtre à part >>> l = Tk.Label(width=10)
Fervents lecteurs du forum vous trouverez sans doute ma proposition puérile mais je pense que cela peux amener le lecteur a comprendre qu'il manipule autre chose que du code Python.
Pas du tout habitué à ce genre de proposition j’attends avec impatience vos commentaires/critiques.
Partager