The after() and after_idle() methods

Tkinter widgets have two methods for adding arbitrary code to the event queue on a delay: after() and after_idle().

Basic use of after() looks like this:

import tkinter as tk
root = tk.Tk()
root.after(1000, root.quit)
root.mainloop()

In this example, we're setting root.quit to run after 1 second (1,000 milliseconds). In the background, root.quit is added to the event loop, but with the condition that it shouldn't be executed until at least 1 second from when after() was called. During that 1 second, any other events in the queue will be executed first. The command might be executed later than 1 second, depending on what's being processed already in the event queue, but no sooner.

The after_idle() method ...

Get Python GUI Programming with Tkinter now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.