It’s been a crazy six months working on my new book, Mastering GUI Programming with Python. So crazy that I somehow finished up 3 months early!
Right now the book is going through the last editing stages, gearing up for a release at the end of May, so eBook copies should be available by June at the latest (print copies take a little longer to become available). With that being the case, I am way overdue to give an update on what this book is all about.
What’s in the book?
As you know from my last post, this book is about PyQt5; unlike the first book, it’s aimed at a little more experienced user and contains less of the meat-and-potatoes development stuff like the design process, unit testing, or documentation. Instead, it’s focused on teaching as much PyQt5 as possible.
Part one: the basics
The first six chapters cover the basics:
- Chapter 1: Getting Started with PyQt.
- Chapter 2: Building Forms with QtWidgets
- Chapter 3: Handling events with signals and slots
- Chapter 4: Building applications with QMainWindow
- Chapter 5: Creating data interfaces with Model/View classes
- Chapter 6: Styling Qt Applications
These six chapters start from zero and walk you through creating simple, attractive form-based applications. By the end of this section of the book, you’ll know enough about PyQt to build a GUI for a simple data-entry, configuration, or utility application. Some of the example apps we build in this part of the book include:
- A text editor
- A CSV viewer/editor
- A Calendar app
Part two: Advanced Qt features
The next 10 chapters of the book comprise a tour of the more interesting capabilities of the Qt framework made available to us Python programmers by PyQt:
- Chapter 7: Working with Audio-visual Using QtMultimedia
- Chapter 8: Networking with QtNetwork
- Chapter 9: Exploring SQL with QtSQL
- Chapter 10: Multithreading with QTimer and QThread
- Chapter 11: Creating Rich text with QTextDocument
- Chapter 12: Creating 2D graphics with Qpainter
- Chapter 13: Creating 3D graphics with QtOpenGL
- Chapter 14: Embedding data plots with QtCharts
- Chapter 15: PyQt Raspberry Pi
- Chapter 16:Web browsing with QtWebEngine
As you can see, we step through a huge variety of functionality here, from graphics and multimedia to networks and databases. There’s even a chapter on coding for the Raspberry Pi. Each chapter in this section of the book contains one to three demo applications, so there is a ton of example code for you to follow. Some of my favorite demo applications I wrote for this section include:
- Sampling sound-board (chapter 7)
- Video logging application (chapter 7)
- Local-network chat (chapter 8)
- Coffee review database (chapter 9)
- File search (chapter 10)
- File hasher (chapter 10)
- Invoice generator (chapter 11)
- Meme generator (chapter 12)
- Tank combat game (chapter 12)
- System monitor (chapter 14)
- Temperature & humidity monitor (chapter 15)
- Basic web browser (chapter 16)
While I had to keep these apps simple for pedagogical purposes, many are surprisingly functional; and since all the code is licensed with the MIT open-source license, you can expand on them yourself and create some pretty awesome stuff.
The last chapter
While the rest of the book is focused on PyQt, the last chapter discusses deployment and sharing of your project; it covers the optimal project structure for collaboration, using setuptools
for building PyPI packages, and finally the use of PyInstaller to generate standalone executables.
We’re almost there!
I’ve put a ton of work into this book, and I can’t wait to share more with you. Keep your eyes here for news about the book’s availability in the coming weeks. I can’t wait for my Python peeps to get a look at it!
Hello, is it still possible to get a free ebook copy? I’m a teacher and I really would like to read your book and evaluate if it fits for my students…I certainly place a honest review! Kind regards, Christopher.