Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Python GUI Programming Cookbook
Python GUI Programming Cookbook

Python GUI Programming Cookbook: Develop functional and responsive user interfaces with tkinter and PyQt5 , Third Edition

eBook
€17.99 €26.99
Paperback
€32.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Table of content icon View table of contents Preview book icon Preview Book

Python GUI Programming Cookbook

Layout Management

In this chapter, we will explore how to arrange widgets within widgets to create a Python GUI. Learning about the fundamentals of GUI layout design will allow us to create great-looking GUIs. There are certain techniques that will help us achieve this layout design.

The grid layout manager is one of the most important layout tools that we will be using, and is built into tkinter. We can very easily create menu bars, tabbed controls (that is, Notebooks), and many more widgets using tkinter.

By completing this chapter, you will learn how to arrange your widgets to make your GUI look truly great! Learning layout management is fundamental to GUI design, even if you use other programming languages – but Python truly rocks!

The following screenshot provides an overview of the Python modules that will be used in this chapter:

In this chapter, we will lay out...

Arraning several labels within a label frame widget

The LabelFrame widget allows us to design our GUI in an organized fashion. We are still using the grid layout manager as our main layout design tool, but by using LabelFrame widgets, we get much more control over our GUI's design.

Getting ready

We will start by adding more widgets to our GUI. We will make the GUI fully functional in upcoming recipes. Here, we will start to use the LabelFrame widget. We will reuse the GUI from the Adding several widgets to a loop recipe in Chapter 1, Creating the GUI Form and Adding Widgets.

How to do it...

...

Using padding to add space around widgets

Our GUI is coming along nicely. Next, we will improve the visual aspects of our widgets by adding a little space around them so that they can breathe.

Getting ready

While tkinter might have had a reputation for creating not-so-pretty GUIs, this has dramatically changed since version 8.5.

To better understand the major improvements to Tk, the following is a quote from the official website; you can find it at the following link: https://tkdocs.com/tutorial/onepage.html:

"This tutorial is designed to help people get up to speed quickly with building mainstream desktop graphical user interfaces with Tk, and in particular Tk 8.5 and 8.6. Tk 8.5 was an incredibly significant milestone...

Dynamically expanding the GUI using widgets

You may have noticed from the previous screenshots and by running the preceding code that the widgets can extend themselves to take up as much space as they need in order to visually display their text.

Java introduced the concept of dynamic GUI layout management. In comparison, visual development IDEs, such as VS.NET, lay out the GUI in a visual manner, and basically hard-code the x and y coordinates of the UI elements.

Using tkinter, this dynamic capability creates both an advantage and a little bit of a challenge because, sometimes, our GUI dynamically expands when we would like it not to be so dynamic! Well, we are dynamic Python programmers, so we can figure out how to make the best use of this fantastic behavior!

Getting ready

...

Aligning GUI widgets by embedding frames within frames

We'll have better control of our GUI layout if we embed frames within frames. This is what we will do in this recipe.

Getting ready

The dynamic behavior of Python and its GUI modules can create challenges when we want to make our GUI really look the way we want it to. In this recipe, we will embed frames within frames to get more control of our layout. This will establish a stronger hierarchy among the different UI elements, making the visual appearance easier to achieve.

We will continue using the GUI we created in the previous recipe, Dynamically expanding the GUI using widgets.

Here, we will create a top-level frame that will contain other frames and widgets. This...

Creating menu bars

In this recipe, we will add a menu bar to our main window, add menus to the menu bar, and then add menu items to the menus.

Getting ready

We will start by learning how to add a menu bar, several menus, and a few menu items. In the beginning, clicking on a menu item will have no effect. We will add functionality to the menu items later, for example, closing the main window when clicking the Exit menu item and displaying a Help | About dialog.

We will continue to extend the GUI we created in the previous recipe, Aligning GUI widgets by embedding frames within frames.

How to do it...

...

Creating tabbed widgets

In this recipe, we will create tabbed widgets to further organize our expanding GUI written in tkinter.

Getting ready

To improve our Python GUI using tabs, we will start at the beginning, using as little code as possible. In this recipe, we will create a simple GUI and then add widgets from the previous recipes, placing them in this new tabbed layout.

How to do it...

Follow these steps to create Tab controls, which in tkinter are called Notebook:

  1. Create a new Python module and name it GUI_tabbed.py.
  2. At the top of the module, import tkinter:
import...

Using the grid layout manager

The grid layout manager is one of the most useful layout tools at our disposal. While layout tools such as pack are simple and easy to use, grid gives us a lot of control over our layout – especially when we combine grid with embedded frames.

We have already used it in many recipes, for example, because it is just so powerful.

Getting ready...

In this recipe, we will review some grid layout manager techniques. We have already used them, but we will explore them in more detail here.

How to do it...

In this chapter, we have created rows...

Left arrow icon Right arrow icon

Key benefits

  • Use object-oriented programming to develop impressive GUIs in Python
  • Create interesting charts to visually represent data using Matplotlib
  • Develop GUIs with the latest versions of tkinter, PyQt5, and wxPython frameworks

Description

Python is a multi-domain, interpreted programming language that is easy to learn and implement. With its wide support for frameworks to develop GUIs, you can build interactive and beautiful GUI-based applications easily using Python. This third edition of Python GUI Programming Cookbook follows a task-based approach to help you create effective GUIs with the smallest amount of code. Every recipe in this book builds upon the last to create an entire, real-life GUI application. These recipes also help you solve problems that you might encounter while developing GUIs. This book mainly focuses on using Python’s built-in tkinter GUI framework. You'll learn how to create GUIs in Python using simple programming styles and object-oriented programming (OOP). As you add more widgets and expand your GUI, you will learn how to connect to networks, databases, and graphical libraries that greatly enhance the functionality of your GUI. You’ll also learn how to use threading to ensure that your GUI doesn't become unresponsive. Toward the end, you’ll learn about the versatile PyQt GUI framework, which comes along with its own visual editor that allows you to design GUIs using drag and drop features. By the end of the book, you’ll be an expert in designing Python GUIs and be able to develop a variety of GUI applications with ease.

Who is this book for?

If you’re a programmer or developer looking to enhance your Python skills by writing powerful GUI applications, this book is for you. Familiarity with the Python programming language is necessary to get the most out of the book.

What you will learn

  • Create amazing GUIs with Python s built-in tkinter module
  • Customize GUIs using layout managers to arrange GUI widgets
  • Advance from the typical waterfall coding style to an OOP style using Python
  • Develop beautiful charts using the free Matplotlib Python module
  • Use threading in a networked environment to make GUIs responsive
  • Discover ways to connect GUIs to a MySQL database
  • Understand how unit tests can be created and internationalize GUI
  • Delve into the world of GUI creation using PyQt5

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 11, 2019
Length: 486 pages
Edition : 3rd
Language : English
ISBN-13 : 9781838828813
Category :
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning

Product Details

Publication date : Oct 11, 2019
Length: 486 pages
Edition : 3rd
Language : English
ISBN-13 : 9781838828813
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 112.97
Python GUI Programming - A Complete Reference Guide
€37.99
Python GUI Programming Cookbook
€32.99
Python Machine Learning
€41.99
Total 112.97 Stars icon

Table of Contents

12 Chapters
Creating the GUI Form and Adding Widgets Chevron down icon Chevron up icon
Layout Management Chevron down icon Chevron up icon
Look and Feel Customization Chevron down icon Chevron up icon
Data and Classes Chevron down icon Chevron up icon
Matplotlib Charts Chevron down icon Chevron up icon
Threads and Networking Chevron down icon Chevron up icon
Storing Data in Our MySQL Database via Our GUI Chevron down icon Chevron up icon
Internationalization and Testing Chevron down icon Chevron up icon
Extending Our GUI with the wxPython Library Chevron down icon Chevron up icon
Building GUIs with PyQt5 Chevron down icon Chevron up icon
Best Practices Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Half star icon Empty star icon Empty star icon 2.5
(2 Ratings)
5 star 0%
4 star 50%
3 star 0%
2 star 0%
1 star 50%
Matthew Emerick Jul 28, 2020
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
About This BookThis is a cookbook-style book that focuses on the tkinter library. It covers all of the included widgets as well as matplotlib graphs. This book will get you started with GUI development and give you a good idea on how to apply it to your own projects.Who is This For?The author intended this book to be for Python programmers who know nothing of GUI development. I think he did well in that regard, though there seem to be a number of odd asides into Python itself. These can distract the reader from what they really want to know.Why Was This Written?It's hard to write a book on GUI development. There are so many options and each of them could be the subject of a book. This book focuses on a single library, though does discuss two others in their own chapters toward the end. I think that is a smart method, as it gives the reader an idea of what other options there are and how they compare to tkinter.OrganizationThe book is well organized. It starts with simple examples and builds up to complex programs. I'm personally puzzled why this was written in a cookbook style. It reads more like a tutorial that teaches you Python GUI concepts, but breaks the sections into 'recipes'. It works well enough, but should probably be written as a tutorial style book instead.Did This Book Succeed?I think the book was mostly successful. The content is there, but the prose takes away from that. The organization is right where it needs to be, but the use of a cookbook style puzzles me. I know I'll find this book useful, but it may or may not be my primary book for GUI development.Rating and Final ThoughtsI have to give this book a 4 our of 5. It's well done and useful, but the language is sometimes dry. There is no personality showing through, outside of a few occasions. That makes it difficult to work through the book. Otherwise, it's a useful book with a lot to offer for anyone who wants to create a GUI for their project.
Amazon Verified review Amazon
John M. Lyons Feb 13, 2020
Full star icon Empty star icon Empty star icon Empty star icon Empty star icon 1
Numerous bugs. One psy (ToolTip) never worked. Screen shots in the first two chapters were inconsistent, The flip side was I had to debug it. Gave up on it after 4 chapters, Really just a set of powerpoint scrreens slapped into a book. No real work problems. I'm sure there are other books describing the tkinter class.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.