Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
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
$20.98 $29.99
Paperback
$43.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
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 : 9781838827540
Category :
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

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

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.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
$199.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
$279.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 $ 148.97
Python GUI Programming - A Complete Reference Guide
$49.99
Python GUI Programming Cookbook
$43.99
Python Machine Learning
$54.99
Total $ 148.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

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.