Cambiar dinámicamente el color de fondo del widget en Tkinter

Tengo una ventana tkinter simple. Se compone de una pequeña ventana, un temporizador y un botón para configurar el temporizador. No quiero entrar en detalles con el código.

Quiero cambiar el fondo de todos los widgets en mi ventana (botones, etiqueta, etc.).

Mi primer pensamiento es utilizar una variable global que estableceré en "red" por ejemplo, y asociar la opción de background todos los widgets con la variable global. Luego, al presionar el botón cambiaré la variable global a "green" (para que cambie el fondo de todos los widgets) pero no pasa nada.

Mi entendimiento fue el .mainloop() como una actualización de la ventana. ¿Cómo puedo tener los widgets para cambiar el color de fondo cuando mi variable cambia sin reiniciar mi aplicación?

Desde mi primera impresión, creo que esto debería ser lo que está buscando, como un simple ejemplo.

 from Tkinter import * root = Tk() global colour global colourselection global count colour = "" colourselection= ['red', 'blue'] count = 1 def start(parent): Tk.after(parent, 1000, change) def change(): global colour global colourselection global count if (count < 2 ): colour = colourselection[count] button.configure(bg = colour) count + 1 else: colour = colourselection[count] button.configure(bg = colour) count = 1 start(root) button = Button(text = 'start', command = lambda: start(root)) button.pack() root.mainloop() 

Estoy seguro de que puede resolver cualquier problema, no ha sido probado

Los colores de fondo no cambiarán automáticamente. Tkinter tiene la capacidad de hacer tal cosa con fonts pero no con colores.

Tendrá que escribir algún código para iterar sobre todos los widgets y cambiar sus colores de fondo.