2017-09-27 3 views
0

J'ai un code Python pour générer la couleur moyenne de l'écran en tant que valeur RVB et un code hexadécimal. Le code se répète à travers une boucle while True, et je veux mettre les instructions pour changer la couleur de la fenêtre à la fin de cette boucle.Modifier de manière répétée la couleur de la fenêtre Tkinter en couleur générée

Je possède ce code au moment:

from Tkinter import * 
from colour import Color 

root = Tk() 
root.configure(background="grey") 
root.geometry("400x400") 
root.mainloop() 
while True: 
    [ COLOUR GENERATING SCRIPT ] 
    hexcolour = Color(rgb=(red, green, blue)) 
    root.configure(background=hexcolour) 

Quelqu'un peut-il s'il vous plaît me dire comment je peux lancer une fenêtre Tkinter puis changer la couleur à chaque fois que les pistes de boucle? J'utilise Python 2.7 pour ce projet.

Répondre

2

Vous devez entièrement retirer la boucle while. Au lieu de cela, créez une fonction qui correspond à ce que vous feriez dans la boucle, puis appelez cette fonction via after. Il fonctionnera ensuite pour la durée du programme.

from Tkinter import * 
from colour import Color 

def changeColor(): 
    [ COLOUR GENERATING SCRIPT ] 
    hexcolour = Color(rgb=(red, green, blue)) 
    root.configure(background=hexcolour) 

    # call this function again in one second 
    root.after(1000, changeColor) 

root = Tk() 
root.configure(background="grey") 
root.geometry("400x400") 

# call it once, it will run forever 
changeColor() 

root.mainloop() 
+0

J'ai mis, mais le programme démarre juste une fenêtre CMD vide, et aucune fenêtre Tkinter démarre ... ([https://i.imgur.com/XAD5I9L.png](https: //i.imgur.com/XAD5I9L.png)) –

+0

@YasathDias: la seule explication à cela serait que '[SCRIPT GENERATEUR DE COULEUR]' ne se termine jamais. Que fait ce code? –

+0

Tu avais raison, mon script fonctionnait encore et encore sans rien sortir, donc après avoir peaufiné quelques lignes, ça fonctionne parfaitement! Merci beaucoup :) –