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 application. 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 the 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 time of a few seconds. In order to keep our GUI responsive, we have to use multithreading, and this is what we will study in this chapter. We can also...