Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

modification apparence tkinter

4 réponses
Avatar
yveslc35
Bonjour,
Un p'tite question avant No=EBl : avec Tkinter, quelle est la m=E9thode
qui permettrait de provoquer le r=E9initialisation de l'affichage de
tous les widgets d'une appli ? Voil=E0, j'avais imagin=E9 dans une appli
donn=E9e d=E9finir diff=E9rents styles d'affichages de couleurs par un
bouton appropri=E9. Il y aurait p.ex. 5 styles (desert, mer, campagne,
montagne, espace) correspondant chacun =E0 une palette de couleurs
coodonn=E9es pour tous les widgets de l'appli (fenetre, frames,
listbox,....textes,...etc). Chaque widget a son param=E8tre couleur
d=E9fini par une variable donc facile =E0 modifier.
Mais cela ne suffit pas de modifier les variable couleurs, encore faut-
il les r=E9appliquer et r=E9afficher tout. Faut-il faire un
nomwidget.configure pour chaque widget (c'est lourd !) ou tout
modifier par un r=E9appel de l'appli ou je ne sais pas quelle commande
magique :)) ?
merci.
YLC

4 réponses

Avatar
Eric Brunel
On Mon, 22 Dec 2008 13:55:20 +0100, wrote:

Bonjour,
Un p'tite question avant Noël : avec Tkinter, quelle est la méthode
qui permettrait de provoquer le réinitialisation de l'affichage de
tous les widgets d'une appli ? Voilà, j'avais imaginé dans une appli
donnée définir différents styles d'affichages de couleurs par un
bouton approprié. Il y aurait p.ex. 5 styles (desert, mer, campagne,
montagne, espace) correspondant chacun à une palette de couleurs
coodonnées pour tous les widgets de l'appli (fenetre, frames,
listbox,....textes,...etc). Chaque widget a son paramètre couleur
défini par une variable donc facile à modifier.
Mais cela ne suffit pas de modifier les variable couleurs, encore faut-
il les réappliquer et réafficher tout. Faut-il faire un
nomwidget.configure pour chaque widget (c'est lourd !) ou tout
modifier par un réappel de l'appli ou je ne sais pas quelle commande
magique :)) ?
merci.
YLC



Je ne suis pas sûr qu'il soit possible de faire ça simplement avec tcl/tk
pré-8.5, sauf à effectivement retenir tous les widgets et appeler un
configure sur tous.

Avec les nouveaux widgets introduits dans tk 8.5 par contre, regarde du
côté de la commande 'style'
(http://www.tcl.tk/man/tcl8.5/TkCmd/ttk_style.htm), en particulier la
commande 'ttk::style theme use ...'. Ca a l'air de faire ce que tu veux
(je n'ai pas essayé).

HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
Avatar
yveslc35
Ok, je vais regarder ça.
Merci
YLC
Avatar
yveslc35
On 23 déc, 12:16, wrote:
Ok, je vais regarder ça.
Merci
YLC



Ben non, en fait, tk8.5 est implémenté pour TCL mais apparamment pas
pour python où il n'y a que Tkinter !.....
Avatar
Eric Brunel
On Wed, 24 Dec 2008 10:58:03 +0100, wrote:

On 23 déc, 12:16, wrote:
Ok, je vais regarder ça.
Merci
YLC



Ben non, en fait, tk8.5 est implémenté pour TCL mais apparamment pas
pour python où il n'y a que Tkinter !.....



Juste une petite précision: Tkinter n'est qu'un "wrapper" Python qui
appelle en fait un interpréteur tcl. Il n'y a donc pas un tk8.5 pour tcl
et un autre pour Python: c'est le même. Ce qui peut manquer - et qui
manque peut-être encore -, ce sont les wrappers Tkinter pour les nouvelles
fonctionnalités de tk8.5. Il était plus ou moins prévu de les intégrer à
la distribution officielle pour Python 2.6, mais j'avoue que je n'ai pas
regardé si ça a été fait. S'ils n'y sont pas encore, les wrappers
"pré-officiels" sont là: http://pypi.python.org/pypi/pyttk

HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"