El método .mainloop( ) de tkinter es un bucle infinito que se encarga de procesar eventos una vez que los widgets estáticos han sido creado (una vez que se ha inicializado la UI) y de actualizar la ventana.
Si queremos introducir nuestro código, para que por ejemplo procese eventos externos:
- Podemos usar el método after(delay_ms, callback=None, *args) para llamar a una función cada un determinado tiempo (en ms).
¿Y si queremos ejecutar un bucle infinito en paralelo al mainloop del tkinter que por ejemplo monitorice un log?:
- Podemos usar el método anterior para llamar a la función que contendrá el bucle infinito y usar el método update( ) dentro de la función. Este método fuerza a que se actualice la ventana.
- Ejecutar tkinter en un hilo (thread) diferente. Ver el código abajo.
Código
Código sacado de stackoverflow:
EnlacesCan't invoke "update" command: application has been destroyed.