PyQt is one of the two most popular Python bindings for the Qt cross-platform GUI/XML/SQL C++ framework (another binding is PySide). PyQt developed by Riverbank Computing Limited. Qt itself is developed as part of the Qt Project. PyQt provides bindings for Qt 4 and Qt 5. PyQt is distributed under a choice of licences: GPL version 3 or a commercial license.
PyQt is available in two editions: PyQt4 which will build against Qt 4.x and 5.x and PyQt5 which will only build against 5.x. Both editions can be built for Python 2 and 3. PyQt contains over 620 classes that cover graphical user interfaces, XML handling, network communication, SQL databases, Web browsing and other technologies available in Qt.
The latest iteration of PyQt is v5.4. It fully supports Qt 5.4 which adds support for QtBluetooth, QtPositioning, QtMacExtras, QtWinExtras and QtX11Extras.
PyQt4 supports the Windows, Linux, Mac OS X and various UNIX platforms. PyQt5 also supports Android and iOS.
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 a 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
Developing with PyQt and PyKDE
Tutorials contains a list of tutorials and walkthroughs
Books contains a list of books about Qt, PyQt, KDE and PyKDE
Development With PyQt can be made even easier with some extra tools and information
Sample Code lists some pieces of code to solve some common programming problems
Overviews and Guides provides in-depth information and detailed examples
Docs And Howtos contains links to API documentation and articles about developing with PyQt and PyKDE
Some Existing Applications written with PyQt and PyKDE
Third Party Packages and Modules for use with PyQt and PyKDE
Videos about PyQt on various video sites
A list of applications that use PyQt as their UI layer can be found on the Some Existing Applications page. 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.
A collection of Sample Code is also available to help with specific problems and use cases.
Links to other resources
The official mailing list is a high signal-to-noise discussion list for PyQt users and developers.
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.