Python GUI Programming Cookbook

Over 80 object-oriented recipes to help you create mind-blowing GUIs in Python

Python GUI Programming Cookbook

Cookbook
Burkhard A. Meier

15 customer reviews
Over 80 object-oriented recipes to help you create mind-blowing GUIs in Python
$35.99
$44.99
RRP $35.99
RRP $44.99
eBook
Print + eBook
Preview in Mapt

Book Details

ISBN 139781785283758
Paperback350 pages

Book Description

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. Its flexible syntax enables developers to write short scripts while at the same time, they can use object-oriented concepts to develop very large projects.

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 uses the simplest programming style, using the fewest lines of code to create a GUI in Python, and then advances to using object-oriented programming in later chapters. If you are new to object-oriented programming (OOP), this book will teach you how to take advantage of the OOP coding style in the context of creating GUIs written in Python.

Throughout the book, you will develop an entire GUI application, building recipe upon recipe, connecting the GUI to a database. In the later chapters, you will explore additional Python GUI frameworks, using best practices. You will also learn how to use threading to ensure your GUI doesn’t go unresponsive.

By the end of the book, you will be an expert in Python GUI programming to develop a common set of GUI applications.

Table of Contents

Chapter 1: Creating the GUI Form and Adding Widgets
Introduction
Creating our first Python GUI
Preventing the GUI from being resized
Adding a label to the GUI form
Creating buttons and changing their text property
Text box widgets
Setting the focus to a widget and disabling widgets
Combo box widgets
Creating a check button with different initial states
Using radio button widgets
Using scrolled text widgets
Adding several widgets in a loop
Chapter 2: Layout Management
Introduction
Arranging several labels within a label frame widget
Using padding to add space around widgets
How widgets dynamically expand the GUI
Aligning the GUI widgets by embedding frames within frames
Creating menu bars
Creating tabbed widgets
Using the grid layout manager
Chapter 3: Look and Feel Customization
Introduction
Creating message boxes – information, warning, and error
How to create independent message boxes
How to create the title of a tkinter window form
Changing the icon of the main root window
Using a spin box control
Relief, sunken, and raised appearance of widgets
Creating tooltips using Python
How to use the canvas widget
Chapter 4: Data and Classes
Introduction
How to use StringVar()
How to get data from a widget
Using module-level global variables
How coding in classes can improve the GUI
Writing callback functions
Creating reusable GUI components
Chapter 5: Matplotlib Charts
Introduction
Creating beautiful charts using Matplotlib
Matplotlib – downloading modules using pip
Matplotlib – downloading modules with whl extensions
Creating our first chart
Placing labels on charts
How to give the chart a legend
Scaling charts
Adjusting the scale of charts dynamically
Chapter 6: Threads and Networking
Introduction
How to create multiple threads
Starting a thread
Stopping a thread
How to use queues
Passing queues among different modules
Using dialog widgets to copy files to your network
Using TCP/IP to communicate via networks
Using URLOpen to read data from websites
Chapter 7: Storing Data in Our MySQL Database via Our GUI
Introduction
Connecting to a MySQL database from Python
Configuring the MySQL connection
Designing the Python GUI database
Using the SQL INSERT command
Using the SQL UPDATE command
Using the SQL DELETE command
Storing and retrieving data from our MySQL database
Chapter 8: Internationalization and Testing
Introduction
Displaying widget text in different languages
Changing the entire GUI language all at once
Localizing the GUI
Preparing the GUI for internationalization
How to design a GUI in an agile fashion
Do we need to test the GUI code?
Setting debug watches
Configuring different debug output levels
Creating self-testing code using Python's __main__ section
Creating robust GUIs using unit tests
How to write unit tests using the Eclipse PyDev IDE
Chapter 9: Extending Our GUI with the wxPython Library
Introduction
How to install the wxPython library
How to create our GUI in wxPython
Quickly adding controls using wxPython
Trying to embed a main wxPython app in a main tkinter app
Trying to embed our tkinter GUI code into wxPython
How to use Python to control two different GUI frameworks
How to communicate between the two connected GUIs
Chapter 10: Creating Amazing 3D GUIs with PyOpenGL and PyGLet
Introduction
PyOpenGL transforms our GUI
Our GUI in 3D!
Using bitmaps to make our GUI pretty
PyGLet transforms our GUI more easily than PyOpenGL
Our GUI in amazing colors
Creating a slideshow using tkinter
Chapter 11: Best Practices
Introduction
Avoiding spaghetti code
Using __init__ to connect modules
Mixing fall-down and OOP coding
Using a code naming convention
When not to use OOP
How to use design patterns successfully
Avoiding complexity

What You Will Learn

  • Create amazing GUIs with Python’s built-in Tkinter module
  • Customize the GUIs by using layout managers to arrange the GUI widgets
  • Advance to an object-oriented programming style using Python
  • Develop beautiful charts using the free Matplotlib Python module
  • Use threading in a networked environment to make the GUIs responsive
  • Discover ways to connect the GUIs to a database
  • Understand how unit tests can be created and internationalize the GUI
  • Extend the GUIs with free Python frameworks using best practices

Authors

Table of Contents

Chapter 1: Creating the GUI Form and Adding Widgets
Introduction
Creating our first Python GUI
Preventing the GUI from being resized
Adding a label to the GUI form
Creating buttons and changing their text property
Text box widgets
Setting the focus to a widget and disabling widgets
Combo box widgets
Creating a check button with different initial states
Using radio button widgets
Using scrolled text widgets
Adding several widgets in a loop
Chapter 2: Layout Management
Introduction
Arranging several labels within a label frame widget
Using padding to add space around widgets
How widgets dynamically expand the GUI
Aligning the GUI widgets by embedding frames within frames
Creating menu bars
Creating tabbed widgets
Using the grid layout manager
Chapter 3: Look and Feel Customization
Introduction
Creating message boxes – information, warning, and error
How to create independent message boxes
How to create the title of a tkinter window form
Changing the icon of the main root window
Using a spin box control
Relief, sunken, and raised appearance of widgets
Creating tooltips using Python
How to use the canvas widget
Chapter 4: Data and Classes
Introduction
How to use StringVar()
How to get data from a widget
Using module-level global variables
How coding in classes can improve the GUI
Writing callback functions
Creating reusable GUI components
Chapter 5: Matplotlib Charts
Introduction
Creating beautiful charts using Matplotlib
Matplotlib – downloading modules using pip
Matplotlib – downloading modules with whl extensions
Creating our first chart
Placing labels on charts
How to give the chart a legend
Scaling charts
Adjusting the scale of charts dynamically
Chapter 6: Threads and Networking
Introduction
How to create multiple threads
Starting a thread
Stopping a thread
How to use queues
Passing queues among different modules
Using dialog widgets to copy files to your network
Using TCP/IP to communicate via networks
Using URLOpen to read data from websites
Chapter 7: Storing Data in Our MySQL Database via Our GUI
Introduction
Connecting to a MySQL database from Python
Configuring the MySQL connection
Designing the Python GUI database
Using the SQL INSERT command
Using the SQL UPDATE command
Using the SQL DELETE command
Storing and retrieving data from our MySQL database
Chapter 8: Internationalization and Testing
Introduction
Displaying widget text in different languages
Changing the entire GUI language all at once
Localizing the GUI
Preparing the GUI for internationalization
How to design a GUI in an agile fashion
Do we need to test the GUI code?
Setting debug watches
Configuring different debug output levels
Creating self-testing code using Python's __main__ section
Creating robust GUIs using unit tests
How to write unit tests using the Eclipse PyDev IDE
Chapter 9: Extending Our GUI with the wxPython Library
Introduction
How to install the wxPython library
How to create our GUI in wxPython
Quickly adding controls using wxPython
Trying to embed a main wxPython app in a main tkinter app
Trying to embed our tkinter GUI code into wxPython
How to use Python to control two different GUI frameworks
How to communicate between the two connected GUIs
Chapter 10: Creating Amazing 3D GUIs with PyOpenGL and PyGLet
Introduction
PyOpenGL transforms our GUI
Our GUI in 3D!
Using bitmaps to make our GUI pretty
PyGLet transforms our GUI more easily than PyOpenGL
Our GUI in amazing colors
Creating a slideshow using tkinter
Chapter 11: Best Practices
Introduction
Avoiding spaghetti code
Using __init__ to connect modules
Mixing fall-down and OOP coding
Using a code naming convention
When not to use OOP
How to use design patterns successfully
Avoiding complexity

Book Details

ISBN 139781785283758
Paperback350 pages
Read More
From 15 reviews

Read More Reviews