Introduction
In this chapter, we will extend the functionality of our Python GUI using threads, queues, and network connections.
Note
A tkinter GUI is single-threaded. Every function that involves sleep or wait time has to be called in a separate thread, otherwise the tkinter GUI freezes.
When we run our Python GUI in Windows Task Manager, we can see that a new python.exe
process has been launched.
When we give our Python GUI a .pyw
extension, then the process created will be python.pyw
, as can be seen in Task Manager.
When a process is created, the process automatically creates a main thread to run our application. This is called a single-threaded application.
For our Python GUI, a single-threaded application will lead to our GUI becoming frozen as soon as we call a longer-running task such as clicking a button that has a sleep of a few seconds.
In order to keep our GUI responsive we have to use multi-threading, and this is what we will study in this chapter.
We can also create multiple processes...