Python Bindings for Qt (3.6)

Phil Thompson

This document describes a set of Python bindings for the Qt widget set. Contact the author at .


Introduction

PyQt is a set of Python bindings for the Qt toolkit and available for all platforms supported by Qt, including Windows, Linux, UNIX and embedded systems such as the Sharp Zaurus and the Compaq iPAQ. They have been tested against Qt versions 1.43 to 3.1.2, Qt Non-commercial, Qtopia 1.5.0, and Python versions 1.5 to 2.3b1.

PyQt is available under the GPL license for use with the GPL version of Qt, and a commercial license for use with the commercial version of Qt.

The bindings are implemented as a number of Python modules

PyQt also includes the pyuic and pylupdate utilities which correspond to the Qt uic and lupdate utilities. pyuic converts the GUI designs created with Qt Designer to executable Python code. pylupdate scans Python code, extracts all strings that are candidates for internationalisation, and creates an XML file for use by Qt Linguist.

Changes

The changes visible to the Python programmer in this release are as follows.

  • SIP 3.6 is required. Starting with SIP 3.1 the run-time support library is implemented as a Python module and so is installed in a different place to earlier versions. You should manually remove any versions of the SIP run-time support library and header files earlier than 3.1.

  • The qtui module contains the QWidgetFactory class. Using this it is possible to read an XML .ui file created with Qt Designer and create the GUI directly rather than using pyuic to first convert it to Python code. (Thanks to Hans-Peter Jansen.)

  • The QextScintillaAPIs, QextScintillaCommand, QextScintillaCommandSet, QextScintillaMacro and QextScintillaPrinter classes have been added to the qtext module.

    The new classes and methods implement a high level API to Scintilla's call tips, auto-completion lists, printing, macro recording and playback, and key mapping.

  • The QCopEnvelope class has been added to the qtpe module.

  • pyuic for Qt v3 will now extract Python code (for example import statements for custom widgets) from the comments section of .ui files.

  • The biff.py, checklists.py and drawlines.py example scripts have been added (thanks to Oleksandr Yakovlyev).