The Tkinter GUI runs in the main thread. The actual download runs in a background thread using threading.Thread. Progress updates are sent via a queue.Queue to the main thread. The main thread polls ...