PyQt is Python bindings developed by Riverbank Computing Limited for the Qt cross-platform GUI/XML/SQL C++ framework. Qt itself is developed by Nokia's Qt Development Frameworks (formerly Trolltech). PyQt provides bindings for Qt 2 and Qt 3. PyQt4, a separate set of bindings, covers the Qt 4 series of releases. PyQt is distributed under a choice of licences: GPL version 2, GPL version 3, or a commercial license. There are also official bindings from Nokia called PySide available under LGPL.
PyQt4 is a set of Python bindings for Qt 4 that exposes much of the functionality of Qt 4 to Python. It contains over 600 classes that cover graphical user interfaces, XML handling, network communication, SQL databases, Web browsing and other technologies in Qt.
Many of the features are described on the About PyQt4 page on the PyQt Wiki.
Current documentation is available at http://www.riverbankcomputing.com/static/Docs/PyQt4/html/.
The PyQt Wiki contains more actively-updated information and examples:
A collection of links to books can be found on the Books page.
Mark Summerfield's book, Rapid GUI Programming with Python and Qt, is an up-to-date guide to GUI application development with Python 2.5, PyQt4 and Qt 4.2/4.3. More information can be found at http://www.qtrac.eu/pyqtbook.html. Mark recommends, incidentally, GUI Bloopers, as appropriate supplementary reading for PyQt programmers.
A list of tutorials can also be found on the Tutorials page.
On this Wiki, you can find the following tutorials:
A tutorial presented by Jonathan Gardner at the 2003 Northwest Linux Fest is available at JonathanGardnerPyQtTutorial.
A tutorial presented by Oleksandr Yakovlyev for embedding PyQt in C++/Qt application EmbedingPyQtTutorial
A list of applications that use PyQt as their UI layer can be found on the SomeExistingApplications page of the PyQt Wiki. This replaces the list previously found here.
Similarly, the Third_Party_Packages_and_Modules page provides a list of resources that can be used to help build applications with certain features.
Links to other resources
A Wiki dedicated to PyQt and PyKDE can be found at The PyQt and PyKDE community Wiki. The http://www.riverbankcomputing.com/mailman/listinfo/pyqt is low in volume and high in quality. The Roadmap is always valuable to read.
This section describes PyQt version 3 (for Qt 3).
PyQt implements around 300 classes and over 5,750 functions and methods including:
- a substantial set of GUI widgets
QScintilla, Scintilla-based rich text editor widget
- data aware widgets that are automatically populated from a database
- an XML parser
- SVG support
- classes for embedding ActiveX controls on Windows (only in commercial version)
Earlier versions of PyQt included a graphical debugger called eric, written using PyQt, which can be used to debug PyQt and ordinary Python console applications. It's now available separately as eric4 from http://eric-ide.python-projects.org/index.html.
PyQt includes pyuic which generates Python code from GUI designs created with Qt Designer. This makes PyQt very useful as a rapid prototyping tool for applications that will eventually be (partly or completely) implemented in C++ because the user interface designs can be re-used without modification.
PyQt is available for Windows, UNIX/Linux, Mac OS X and the Sharp Zaurus.