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.

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

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

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

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.
14 comments
Puffergas
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
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
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: https://wiki.tcl-lang.org/page/Binary+Distributions
Marcelo
Estoy muy agradecido por el libro, está muy completo y detallado, gracias!!!
Brandon
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
I ever designed something like embedded system for chemical detection by Python2 and Python3 with the GUI and touch screen by Qt4.
https://youtu.be/7DXldnYDZsA
Jon
Any chance there is a github repository where the code is available?
Many thanks
Mikael Bonnier
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
Wow, this is great! :D Thank you! \o/
Norman Dunbar
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.
Cheers,
Norm.
Norman Dunbar
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.
Cheers,
Norm.
Phil King
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
There is a minor failure on Page 45:
“from guizero import App, Box,”
The “,” at the end will generate a failure.
Cheers, Toby
Puffergas
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