Book Image

Python GUI Programming Cookbook, Second Edition - Second Edition

By : Burkhard Meier
Book Image

Python GUI Programming Cookbook, Second Edition - Second Edition

By: Burkhard Meier

Overview of this book

Python is a multi-domain, interpreted programming language. It is a widely used general-purpose, high-level programming language. It is often used as a scripting language because of its forgiving syntax and compatibility with a wide variety of different eco-systems. Python GUI Programming Cookbook follows a task-based approach to help you create beautiful and very effective GUIs with the least amount of code necessary. This book will guide you through the very basics of creating a fully functional GUI in Python with only a few lines of code. Each and every recipe adds more widgets to the GUIs we are creating. While the cookbook recipes all stand on their own, there is a common theme running through all of them. As our GUIs keep expanding, using more and more widgets, we start to talk to networks, databases, and graphical libraries that greatly enhance our GUI’s functionality. This book is what you need to expand your knowledge on the subject of GUIs, and make sure you’re not missing out in the long run.
Table of Contents (18 chapters)
Title Page
About the Author
About the Reviewer
Customer Feedback


In this chapter, we will extend the functionality of our Python GUI using threads, queues, and network connections.


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...