PyQt Changelog

What's new in PyQt 5.8.2

Mar 31, 2017
  • Minor bug-fix release.

New in PyQt 5.8.1 (Mar 10, 2017)

  • Minor bug-fix release mostly related to integration with QML caused by changes in Qt v5.8.0.

New in PyQt 5.8 (Feb 16, 2017)

  • Added support for Qt v5.8.0.
  • Added __fspath__() to QFileInfo.
  • Added the --qml-debug option to configure.py. The --debug option no longer enables the QML debugging infrastructure.
  • Added the --link-full-dll option to configure.py.

New in PyQt 5.7.1 (Jan 9, 2017)

  • Added support for Qt v5.7.1.
  • Added the QtWebEngine module.
  • Added QRegion.setRects().
  • Added QtMac to the QtMacExtras module.
  • Added pyuic5 plugins for QChartView and QWebEngineView.
  • The Python v3.4 limited API is used.
  • SIP v4.19 is required.

New in PyQt 5.7 (Jul 26, 2016)

  • Added support for Qt v5.7.0.

New in PyQt 5.6 (May 7, 2016)

  • The highlights of the release are support for Qt v5.6.0 and the provision of wheels for Python v3.5 for Linux, OS X and Windows:
  • Added full support for Qt v5.6.0.
  • Python v3.5 wheels are available for 64-bit Linux, 64-bit OS X and 32 and 64-bit Windows. (After this release Windows .exe installers will no longer be produced.)
  • Added the QtWebEngineCore module.
  • Added the missing qt_set_sequence_auto_mnemonic() to QtGui.
  • Added the missing MouseLock to QWebEnginePage.Feature.
  • Added the missing WA_DontShowOnScreen.
  • PEP 484 stub files are installed by default.
  • Added the --import-from command line argument to pyuic5.
  • Added the --no-stubs and --stubsdir options to configure.py.
  • Added the --qtconf-prefix option to configure.py.

New in PyQt 5.5.1 (Nov 21, 2015)

  • This is a minor functional and bug-fix release:
  • added support for Qt v5.5.1
  • added the --disable option to configure.py
  • implemented __matmul__ and __imatmul__ for QMatrix4x4 and QTransform.

New in PyQt 5.5.0 (Aug 18, 2015)

  • This supports Qt v5.5.0 and includes the new QtLocation and QtNfc modules:
  • added full support for Qt v5.5.0
  • added the QtLocation module
  • added the QtNfc module
  • added Qt.NoOpaqueDetection and Qt.NoFormatConversion to QtCore
  • added QMacToolBar and QMacToolBarItem to QtMacExtras
  • added QProxyStyle to QtWidgets.

New in PyQt 5.4.2 (Jun 15, 2015)

  • This is a minor functional and bug-fix release including support for Qt v5.4.2:
  • Added support for Qt v5.4.2.
  • Added QWIDGETSIZE_MAX to QtWidgets.
  • Added the --no-python-dbus command line option to configure.py.

New in PyQt 5.4.1 (Feb 27, 2015)

  • added support for Qt v5.4.1
  • added the QMacCocoaViewContainer class
  • all OpenGL examples use QOpenGLWidget and no longer require PyOpenGL
  • added initial implementations of _QOpenGLFunctions_2_1 and _QOpenGLFunctions_4_1_Core
  • QEvent.None is now QEvent.None_
  • added missing QEvent.Type members that are now documented in Qt
  • added the --license-dir option to configure.py
  • installing into a virtual env should now work
  • pyuic5 and pyrcc5 no longer include a timestamp in the generated code.

New in PyQt 5.4 (Dec 27, 2014)

  • added full support for Qt v5.4.0
  • added the QtWebChannel module
  • added the QtWebEngineWidgets module
  • added the QtXml module.

New in PyQt 5.3.2 (Sep 15, 2014)

  • Added the Enginio module.
  • Added the QJsonDocument and QJsonValue classes.
  • QJsonObject is implemented as a Python dict.
  • QJsonArray is implemented as a Python list.
  • Added setUnifiedTitleAndToolBarOnMac() and unifiedTitleAndToolBarOnMac() to QWidget.
  • Added windowHandle() to QWidget.

New in PyQt 5.3.1 (Jul 4, 2014)

  • Added support for Qt v5.3.1.
  • Added the -tr-function and -translate-function command line options to pylupdate5.

New in PyQt 5.3 (May 28, 2014)

  • By default a Python slot is only invoked if the underlying C++ instance still exists.
  • Added the no_receiver_check argument to connect().
  • Added support for Qt v5.3.0.
  • Added the QtQuickWidgets module.
  • Added the QtWebSockets module.
  • Added the --target_py_version, --sysroot and --no-tools option to configure.py.
  • Cross-compilation (specifically to iOS and Android) is now supported.

New in PyQt 5.2.1 (Mar 17, 2014)

  • Full support for Qt v5.2.1.
  • Properties, signals and slots can now be defined in mixins (i.e. non-QObject classes).
  • Support for creating QSGGeometry.AttributeSet instances.
  • Fundamental values may now be given whenever a QJSValue is expected.
  • Building PyQt5 as static libraries now works.
  • Support for building without OpenGL.

New in PyQt 5.2 (Jan 8, 2014)

  • This fully supports Qt v5.2.0 including the new QtBluetooth, QtPositioning, QtMacExtras, QtWinExtras and QtX11Extras modules.

New in PyQt 5.1.1 (Oct 25, 2013)

  • This is a bug fix release only.

New in PyQt 5.1 (Oct 3, 2013)

  • Added full support for Qt v5.1.
  • Added the QtSensors module.
  • Added the QtSerialPort module.
  • A (nearly) complete set of OpenGL v2.0 and OpenGL ES/2 bindings are included.
  • Cross-compilation is now supported. A configuration file for Python3 on the Raspberry Pi is included.

New in PyQt 5.0.1 (Sep 4, 2013)

  • Added the QtQuick module including the ability to create Python Quick items from QML.
  • Added the QtQml module including the ability to create Python objects from QML.
  • Added the QtMultimediaWidgets module.
  • Completed the implementation of the QtMultimedia module including support for cameras and radios.
  • Added the remaining OpenGL classes to the QtGui module.
  • Added the revision keyword argument to pyqtProperty().
  • Added the revision and arguments keyword arguments to pyqtSignal().
  • Added the revision keyword argument to pyqtSlot().
  • Added the pyqt5qmlplugin plugin for qmlscene.
  • The DBus main loop module has been renamed to dbus.mainloop.pyqt5 from dbus.mainloop.qt.
  • Added the --no-qml-plugin and --qml-plugindir options to configure.py.
  • Added many QtMultimedia, QML and QtQuick related examples.
  • Classes now support co-operative multi-inheritance. (This may introduce incompatibilities with PyQt v5.0.)

New in PyQt 5.0 (Jun 17, 2013)

  • Python v3, v2.7 or v2.6 are supported
  • The module structure reflects the library structure of Qt v5.
  • Parts of the Qt v5 API that are marked as deprecated or obsolete are not supported.

New in PyQt 4.10.2 (Jun 17, 2013)

  • Bug fixes

New in PyQt 4.10.1 (Apr 23, 2013)

  • Added support for QtCore.pyqtSetPickleProtocol() and QtCore.pyqtPickleProtocol() to set and get the protocol used to pickle Python objects when serialising them for Qt.
  • Added support for the --resource-suffix option to pyuic4.
  • Added a new build system (configure-ng.py) which will be compatible with SIP v5 and will eventually support cross-compilation.
  • Added support for Qt v5.0.2.
  • Bug fixes.

New in PyQt 4.10 (Mar 4, 2013)

  • Added support for QtCore.PYQT_CONFIGURATION in anticipation of SIP v5.
  • Added support for Qt v5.0.1.
  • Bug fixes.

New in PyQt 4.9.6 (Dec 10, 2012)

  • Support has been added for Qt v4.8.4 and Qt v5.0-rc1.
  • Added the missing constBits() and constScanLine() methods to QImage.
  • A QPoint can now be specified whenever a QPointF is expected.
  • Added support for Qt v4.8.4.
  • Added support for Qt v5.0-rc1 (QtCore, QtGui, QtHelp, QtNetwork, QtSql, QtSvg, QtWebKit and QtXml only).
  • Added the --no-deprecated option to configure.py.
  • SIP v4.14.2 is now required.

New in PyQt 4.9.5 (Oct 1, 2012)

  • Added support for Qt v4.8.3.
  • Added support for Qt v5-beta1 (QtCore, QtGui, QtHelp, QtNetwork, QtSql, QtSvg, QtWebKit and QtXml only).
  • Implemented __str__ and __unicode__ for QChar.
  • Added the missing QPointF operator*(qreal, QPointF).
  • Added the customcompleter.py example.
  • SIP v4.14 is now required.

New in PyQt 4.9.4 (Jun 28, 2012)

  • This fixes a build problem that affected Windows and OS X.

New in PyQt 4.9.3 (Jun 25, 2012)

  • Fixed QByteArray.__getitem__ so that it does bounds checking.
  • Fixed a regression in the setting of the qmake spec name on OS/X.
  • Applied patches from Debian for when the ld --no-add-needed flag is set.

New in PyQt 4.9.2 (Jun 22, 2012)

  • Added support for Qt v4.8.2.
  • Added support for Qt v5-alpha (QtCore and QtGui only).
  • Added support for Python v3.3.
  • bool(QPyNullVariant(...)) now returns False rather than True to mimic the behaviour of None.
  • Exposed the pyqtBoundSignal type object in the QtCore module.
  • Added the signal attribute to pyqtBoundSignal containing the signature that would be returned by SIGNAL().
  • Added the optional package argument to uic.loadUi() to properly handle relative imports.
  • pyuic4 now supports themed icons.
  • Added the spreadsheet example from Hans-Peter Jansen.

New in PyQt 4.9.1 (Feb 13, 2012)

  • QPainter can now be used as a context manager.
  • Added QMacPasteboardMime on OS/X.
  • Added the missing QPixmap.HBitmapFormat.Alpha enum member on Windows.
  • Added support for the Python v3 implementation of dbus-python.
  • Bug fixes.

New in PyQt 4.9 (Dec 23, 2011)

  • This is a major feature release including support for Qt v4.8.0 and the inclusion of the QtDBus module.

New in PyQt 4.8.6 (Nov 1, 2011)

  • This is a minor bug fix release.

New in PyQt 4.8.5 (Aug 11, 2011)

  • Added support for Qt v4.7.3.
  • Added IPv6 support for QHostAddress.
  • Added the missing QAbstractFileEngine.beginEntryList().
  • Bug fixes.

New in PyQt 4.8.4 (May 2, 2011)

  • Added support for Qt v4.7.2.
  • QObject.findChild() and QObject.findChildren() now allow a tuple of type objects as well as a single type argument so that children of a number of types may be found.
  • Added support for QCommonStyle.
  • Added limited support for setEventFilter() and filterEvent() to QAbstractEventDispatcher.
  • Added support for setAttributeArray() to QGLShaderProgram.
  • pyrcc4 will now compress by default to match the behaviour of rcc.
  • Removed QTouchEventSequence as its C++ API makes it impossible to be used from Python.
  • Bug fixes.

New in PyQt 4.8.3 (Jan 25, 2011)

  • Added the QPyNullVariant class to the QVariant v2 API to allow null QVariants to be implemented.
  • Added the optional type keyword argument to QSettings.value() to allow the type of the returned value to be specified.
  • QDeclarativeItem will now act as a transparent proxy from any QML signals and JavaScript functions.
  • Any QObject invokable methods can now be called transparently even if they haven't been explicitly wrapped.
  • QWizardPage.registerField() can now take an unbound or bound signal as its 'changedSignal' argument.
  • Converted the Reference Guide to Sphinx.
  • Bug fixes.

New in PyQt 4.8.1 (Nov 1, 2010)

  • Support for the QT_BEGIN_NAMESPACE and QT_END_NAMESPACE macros to allow PyQt to be built against Qt built with namespace support.
  • Bug fixes.

New in PyQt 4.8 (Oct 23, 2010)

  • Added support for Qt v4.7 including the new QtDeclarative module.
  • pyqtProperty() can now be used as a method decorator in the same way that the standard Python property type can be used.
  • Added the notify argument to pyqtProperty().
  • Unbound signals can now be subscripted in the same way that bound signals can.
  • Added the missing

New in PyQt 4.7.7 (Sep 21, 2010)

  • uic.loadUi() will now accept a QString filename again.
  • Fixes for the svgviewer.py example from Hans-Peter Janson.
  • QFlags can now be ored (and xored) against an int. At the cost of relaxing the type checking this makes the behaviour consistent irrespective of the order in which enums of other types are specified.
  • Added the separations.py example from Hans-Peter Jansen.
  • Added the delayedencoding.py example for Hans-Peter Jansen.
  • Added the dropsite.py example fro Hans-Peter Jansen.
  • Fixed a pyuic regression under Python v2 when using the -o command line flag.
  • Fixed a pyuic regression when calling loadUiType().

New in PyQt 4.7.4 (Jul 14, 2010)

  • Fixed the operator[](int) of QWebElementCollection so that it is consistent
  • with other implementations of the operator.
  • Applied the new __len__ annotation to all count() methods.
  • Added a private assignment operator to QXmlParseException as it still cannot be
  • copied even though it has a ctor with only default arguments.
  • Fixed a bug in the parsing of a C++ signature that includes a template with
  • multiple arguments.

New in PyQt 4.7.3 (Apr 19, 2010)

  • a bug-fix release.

New in PyQt 4.7.2 (Mar 31, 2010)

  • Fixed a bug where the pyqtSlot() decorator was being ignored when attempting
  • to make a new-style connection from an incompatible signal.

New in PyQt 4.7 (Mar 18, 2010)

  • QNetworkReplay.ignoreSslErrors() is now dependent on OpenSSL support.
  • Fixed the path to metasip for the new build server.
  • Completed the implementation of the QtMultimedia module.
  • Fixed the super-type of QRunnable because it can be owned.
  • Added the majority of the QtMultimedia module to the MetaSIP project.
  • Fixed a problem with QDataStream and v2 of the QString API.
  • Added readQStringList() and writeQStringList() to QDataStream.
  • Fixed a bug when using the new connect API to disconnect a slot while executing
  • the slot.

New in PyQt 4.6.2 Dev (Nov 13, 2009)

  • Fixed a bug in the capabilities.py example triggered by the QVariant v2 API.

New in PyQt 4.5.4 (Aug 17, 2009)

  • Fixed the super-type of QGLContext because it takes part in parent/child
  • relationships.

New in PyQt 4.4.4 (Nov 10, 2008)

  • Added a workaround for an obscure typedef-related SIP bug triggered by QAxBase.
  • Updated the NEWS file.
  • Updates to the installers.
  • Changed all uses of sequences to explicitly use PySequence_Check() as PySequence_Size() returning a valid value may not be sufficient (eg. sets).
  • PyQt should now compile against Stackless.
  • More fixes for the GPL installer related to setting PATH and non-admin
  • installs.
  • Updates to the GPL installer so that it uses the correct path in pyuic4.bat and may work better with non-administrator installs.
  • Fixed a pyuic bug caused by a widget being called "_name" in the .ui file.
  • The configuration of the Designer plugin now uses exec_prefix rather than prefix.
  • Added the --no-designer-plugin option to configure.py.
  • Fixed a bug in pyqtProperty() where the name of the setter wasn't being properly checked to see if it follows the Designer naming standard.
  • Added a missing /Constrained/ from the first QVariant ctor needed by the new SIP enum handling.
  • Fixed a bug in pyuic's handling of QFormLayout when a layout is being set in a role rather than a widget.
  • Completed the roadmap.
  • Added the missing Windows and Mac versions from QSysInfo.
  • Added more to the roadmap.
  • Renamed the TODO list.
  • Updated the TODO list.
  • Added the /Constrained/ enum annotations required by the latest SIP.
  • More changes to QVariant to further minimise the changes from previous versions.
  • Updated the docs regarding the slightly changed QVariant behaviour.
  • Added support for qreal being implemented as either a float or a double.
  • QSizeGrip support is now determined by configure.py.
  • Fixed QDesktopServices.setUrlHandler() so that it works the same as the C++ implementation but also accepts a method that is a slot of a QObject.
  • Backed out the explicit support for the QList and QMap mapped types as they break backwards compatibility.
  • Fixed a pyuic bug handling empty icon sets.
  • Added the unit tests for QVariant.
  • Added the unit tests for __pyqtSignals__ and pyqtSignature().
  • Added the unit tests for pyqtProperty.
  • Python integer objects will now be stored as int types in QVariant where possible (rather than qlonglong) so that enums are stored as ints.
  • Added data() (returning a void *) to QXmlAttributes, QPolygon and QPolygonF.
  • Updated the unit test framework and started to add the ad-hoc tests to it.
  • Updated the docs relating to QVariant and Python objects.
  • Removed the QMetaType.type() overload as it is now completely broken. Strictly speaking this breaks backwards compatibility but it was present for such a short period of time that nobody should miss it.
  • Updates to the GPL installer for Python v2.6.
  • Switched the internal build system to Qt v4.4.2.
  • No, it should have been SIP v4.7.8 that is now required.
  • SIP v4.7.7 is now required.
  • The QVariant support will now use the correct C++ type name when seeing if it is aleady registered.
  • Removed a compiler warning message with Python v2.6rc1.
  • pyuic4 uses the set builtin rather than the sets module where possible to avoid deprecation warnings with Python v2.6rc1.
  • Added the missing sub-class convertor code that handles QGraphicsScene events.
  • Implemented the enhanced support for converting QVariants back to Python objects - but completely untested.
  • Further changes when creating a QVariant. Converting back to a Python object is still broken.
  • Reimplemented the conversions to QVariant to ensure any Python object can be converted (and to a C++ instance where possible). (I will probably take this a little further.)
  • QVariant() and QVariant.toPyObject() will now handle non-Qt wrapped types properly.
  • Fixed a bug handling of non-Qt wrapped types by QVariant.
  • Fixed bugs in the embeddeddialogs.py and Designer pydemo.py examples.
  • pyuic will now complain if it finds a custom widget header file name that contains '..'.
  • Added %MethodCode for QKeySequence::operator[] to do bounds checking so that iterating over an instance works properly. Also added Pythonic handling of negative indices.
  • Reviewed all other operator[] implementations and adopted the same code skeleton.