New book: Create Graphical User Interfaces with Python

Laura Sach and Martin O’Hanlon, who are both Learning Managers at the Raspberry Pi Foundation, have written a brand-new book to help you to get more out of your Python projects.

Cover of the book Create Graphical User Interfaces with Python

In Create Graphical User Interfaces with Python, Laura and Martin show you how to add buttons, boxes, pictures, colours, and more to your Python programs using the guizero library, which is easy to use and accessible for all, no matter your Python skills.

This new 156-page book is suitable for everyone — from beginners to experienced Python programmers — who wants to explore graphical user interfaces (GUIs).

Meet the authors

Screenshot of a Digital Making at Home live stream session
That’s Martin in the blue T-shirt with our Digital Making at Home live stream hosts Matt and Christina

You might have met Martin recently on one of our weekly Digital Making at Home live streams for young people, were he was a guest for an ‘ooey-GUI’ code-along session. He talked about his background and what it’s like creating projects and learning resources on a day-to-day basis.

Laura is also pretty cool! Here she is showing you how to solder your Raspberry Pi header pins:

Hi Laura!

Martin and Laura are also tonnes of fun on Twitter. You can find Martin as @martinohanlon, and Laura goes by @codeboom.

10 fun projects

In Create Graphical User Interfaces with Python, you’ll find ten fun Python projects to create with guizero, including a painting program, an emoji match game, and a stop-motion animation creator.

A double-page from the book Create Graphical User Interfaces with Python
A peek inside Laura’s and Martin’s new book

You will also learn:

  • How to create fun Python games and programs
  • How to code your own graphical user interfaces using windows, text boxes, buttons, images, and more
  • What event-based programming is
  • What good (and bad) user interface design is
A double-page from the book Create Graphical User Interfaces with Python
Ain’t it pretty?

Where can I get it?

You can buy Create Graphical User Interfaces with Python now from the Raspberry Pi Press online store, or the Raspberry Pi store in Cambridge, UK.

And if you don’t need the lovely new book, with its new-book smell, in your hands in real life, you can download a PDF version for free, courtesy of The MagPi magazine.


Puffergas avatar

I am excited about you new book! Having just started to learn how to program, I’m amazed how easy it is. Been using PySimpleGUI, however guizero should be interesting. Loving Python and Raspberry Pi . . .

Esbeeb avatar

Pardon my ignorance, but what about Wayland? Would an app written using this guizero library work natively on a Wayland desktop, without Xwayland needing to be the thing that handles it?

Esbeeb avatar

I looked upstream at Tcl/Tk, to learn about how it supports/doesn’t support Wayland. No, not yet, however there is a so-called “binary distribution” of Tcl/Tk, called “undroidwish”, which claims to have Wayland support. Search for the word “wayland” here, for more info:

Marcelo avatar

Estoy muy agradecido por el libro, está muy completo y detallado, gracias!!!

Brandon avatar

My son is going to love this! He’s obsessed with programming already, but I fear he’s doing too much with scratch – I want him to learn some real code and still be able to have fun with it. Definitely going to scoop this up for him!

Chien-Hung Lai avatar

I ever designed something like embedded system for chemical detection by Python2 and Python3 with the GUI and touch screen by Qt4.

Jon avatar

Any chance there is a github repository where the code is available?
Many thanks

Mikael Bonnier avatar

I know of one program written in Python with GUI: FAHControl – Folding@home Client Advanced Control. It also runs on Raspberry Pi OS (and Windows and MacOS).

Nick avatar

Wow, this is great! :D Thank you! \o/

Norman Dunbar avatar

Minor correction, sorry. :-(
On page 78, Figure 1 is described in the text as having a yellow square top left – that’s correct. Unfortunately, the rest of the text doesn’t match the image – the “single blue square to the right” is purple, and the “red square underneath” is green.
The image appears to be the wrong one for the description.

Other than that, so far I’m enjoying the book.


Norman Dunbar avatar

PS. Page 86 suffers from similar “colour blindness” between the text and images. The text says “red” and the images are “green”. Around Figure 8.


Phil King avatar

Hi Norman. This error was caused by the screen grabs being replaced, but the body text wasn’t updated to match. This has now been corrected in the downloadable PDF version of the book.

Toby avatar

There is a minor failure on Page 45:
“from guizero import App, Box,”
The “,” at the end will generate a failure.
Cheers, Toby

Puffergas avatar

I think on page 151, at the bottom of Properties; ext_size and ext_color should be text_size and text_color.

Comments are closed