TechBookReport logo

Keywords: Python, Qt, GUI programming, open source

Title: Rapid GUI Programming With Python and Qt

Author: Mark Summerfield

Publisher: Prentice Hall

ISBN: 0132354187

Media: Book

Level: Beginner/Intermediate

Verdict: Highly recommended.


Qt is one of the best known and most widely used of the multi-platform GUI programming frameworks. It is best known as a widget toolkit coded in C++, and is at the heart of the KDE Linux desktop, the Opera browser, Skype and a host of other applications. However, just because Qt is coded in C++ that doesn't mean you're limited to C++ if you want to make use it. There are Qt bindings in a variety of languages, including Java, Python, Ruby and more. In the case of Python, PyQt is a mature and popular GUI framework that enables Python developers to easily create feature rich and good looking GUI applications. And for those developers wanting to gain a good grounding in how to do this Mark Summerfield, one of the authors of the rather excellent 'C++ GUI Programming With Qt 4', has put turned his attention to Python and PyQt.

The starting point of the book is that you are a developer who wants to get to grips with GUI programming using Qt and Python. No prior knowledge of GUI programming is assumed, and indeed there's not much in the way of in-depth Python assumed either (though it is assumed that you are familiar with object oriented programming - so a Java developer with some basic Python knowledge shouldn't find this too taxing). And, for those wanting a Python refresh the first part of the book includes a fairly decent introduction. But it's part two of the book which is where the fun starts. Here we are introduced to the basics of GUI programming using PyQt - starting with some small but useful little programs that show how things are put together. The fact that these samples do something useful in addition to teaching the reader is a bonus.

For the initial part of the this basic introduction the GUI is put together by hand, exclusively using code to create all of the widgets and wire them up. Later we get introduced to the Qt Designer tool which takes some of the slog out of the process - but it's good that manual coding is introduced first.

The second part of the book moves to 'intermediate GUI programming', which in this case means layout policies, MDI (multiple document interface) applications, drag and drop, the clipboard, an introduction to the model-view-controller (MVC) design pattern, custom widgets and more. It's solid and essential stuff for anything but the simplest of GUI applications. As with the rest of the book the technical content is matched by the quality of the writing and explanation. This is a technical book that you can actually read.

The final section of the book covers 'advanced GUI programming', meaning more on MVC, multi-threading, online help and internationalisation and a chapter devoted to networking.

In addition to the pure GUI side of things, the book also covers those extras included as part of the core Qt product. Things like XML parsing, database connectivity, file reading and writing and so on.

As should be clear, this is a very readable and useful book, and it gets a very strong recommendation for all those who want to get the most out of Qt using Python.

Hit the 'back' key in your browser to return to subject index page

Return to home page

Contents © TechBookReport 2008. Published January 09 2008