Tkinter : Une variable de contrôle ne se met pas à jour
Résolu
Fabio
-
gudu -
gudu -
Bonjour,
J'essaie de créer un programme qui donne un aperçu d'une couleur à base de curseurs modifiable.
Le problème, c'est que la couleur ne se met pas à jour.
Voici mon code :
J'espère que vous pouvez m'aider,
Merci.
J'essaie de créer un programme qui donne un aperçu d'une couleur à base de curseurs modifiable.
Le problème, c'est que la couleur ne se met pas à jour.
Voici mon code :
#!/usr/bin/python # -*- coding: utf-8 -* import tkinter root = tkinter.Tk() rouge = tkinter.Scale(root, orient='horizontal', from_=0, to=250,resolution=1, tickinterval=25, length=500,label='Rouge') rouge.pack() vert = tkinter.Scale(root, orient='horizontal', from_=0, to=250,resolution=1, tickinterval=25, length=500,label='Vert') vert.pack() bleu = tkinter.Scale(root, orient='horizontal', from_=0, to=250,resolution=1, tickinterval=25, length=500,label='Bleu') bleu.pack() vrouge = tkinter.IntVar(rouge) vvert = tkinter.IntVar(vert) vbleu = tkinter.IntVar(bleu) couleur = "#" + str(hex(vrouge.get()))[0] + str(hex(vrouge.get()))[2] + str(hex(vvert.get()))[0] + str(hex(vvert.get()))[2] + str(hex(vbleu.get()))[0] + str(hex(vbleu.get()))[2] labelcouleur = tkinter.Label(text=couleur, fg="white", bg=couleur) labelcouleur.pack() root.title('Couleurs') root.mainloop()
J'espère que vous pouvez m'aider,
Merci.
A voir également:
- Tkinter : Une variable de contrôle ne se met pas à jour
- Probleme tkinter injustifier - Forum Python
- Pygame ou tkinter ? - Forum Python
- Probleme collision avec tkinter - Forum Python
- Problème avec grid tkinter ✓ - Forum Python
- Tkinter canvas rotate - Forum Python
1 réponse
Les vars se donnent en argument de Scale dans l'option variable.
Et pour t'éviter de demander ensuite comment faire la mise à jour automatique à chaque changement, je te montre l'exemple qui va bien.
Il te reste plus qu'à trouver une solution pour inverser le contraste pour que le texte du label reste toujours lisible ;)
Et pour t'éviter de demander ensuite comment faire la mise à jour automatique à chaque changement, je te montre l'exemple qui va bien.
#!/usr/bin/python # -*- coding: utf-8 -* import tkinter root = tkinter.Tk() vrouge = tkinter.IntVar() vvert = tkinter.IntVar() vbleu = tkinter.IntVar() def update(v): color = "#" for var in (vrouge, vvert, vbleu): color += hex(var.get()).split('x')[1].zfill(2) labelcouleur.configure(text=color, bg=color) rouge = tkinter.Scale(root, variable=vrouge, orient='horizontal', from_=0, to=255,resolution=1, tickinterval=25, length=500,label='Rouge', command=update) rouge.pack() vert = tkinter.Scale(root, variable=vvert, orient='horizontal', from_=0, to=255,resolution=1, tickinterval=25, length=500,label='Vert', command=update) vert.pack() bleu = tkinter.Scale(root, variable=vbleu, orient='horizontal', from_=0, to=255,resolution=1, tickinterval=25, length=500,label='Bleu', command=update) bleu.pack() labelcouleur = tkinter.Label(text='', fg="white", bg='#000000') labelcouleur.pack() root.title('Couleurs') root.mainloop()
Il te reste plus qu'à trouver une solution pour inverser le contraste pour que le texte du label reste toujours lisible ;)