v4.10.1 21st April 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. v4.10 1st March 2013 - Added support for QtCore.PYQT_CONFIGURATION in anticipation of SIP v5. - Added support for Qt v5.0.1. - Bug fixes. v4.9.6 8th December 2012 - 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-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. - Bug fixes. v4.9.5 29th September 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. - Bug fixes. v4.9.4 26th June 2012 - Bug fixes. v4.9.3 24th June 2012 - Bug fixes. v4.9.2 20th June 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. - Bug fixes. v4.9.1 10th February 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. v4.9 22nd December 2011 - Added support for Qt v4.8.0 - Added the QtDBus module and related examples. - Added support for QtCore.Q_CLASSINFO(). - Added the missing QMenuBar.cornerWidget() and QMenuBar.setCornerWidget(). - Bug fixes. v4.8.6 25th October 2011 - Added support for Qt v4.7.4. - Bug fixes. v4.8.5 2nd August 2011 - Added support for Qt v4.7.3. - Added IPv6 support for QHostAddress. - Added the missing QAbstractFileEngine.beginEntryList(). - Bug fixes. v4.8.4 1st May 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. v4.8.3 23rd January 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 for 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. v4.8.2 23rd December 2010 - Added support for Qt v4.7.1. - Added the coloreditorfactory.py, combowidgetmapper.py, customsortfiltermodel.py and simplewidgetmapper.py item view examples from Hans-Peter Jansen. - Added the IPC examples from Hans-Peter Jansen. - Added the WebKit examples from Hans-Peter Jansen. - Added the calendarwidget.py, stylesheet.py and textedit.py examples from Hans-Peter Jansen. - Added the --no-timestamp option to configure.py. - Added the lang example from Hans-Peter Jansen to the contrib directory. - The support for the detection of the destruction by Qt of internally constructed QObject instances (added in PyQt v4.7.5) has been disabled until a reliable thread-safe solution can be found. - Bug fixes. v4.8.1 29th October 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. v4.8 22nd October 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 << operator to QPolygon, QPolygonF and QXmlStreamAttributes. - PyQt will now automatically keep a reference to objects set with some sort of setter method when Qt expects the underlying C++ instance to stay valid but does not take ownership of it. - Added the lightmaps.py and stardelegate.py examples from Hans-Peter Jansen. - Added the --assume-shared option to configure.py. - The QtAssistant module is no longer built with Qt v4.7 and later. v4.7.7 21st September 2010 - A bug fix release. v4.7.6 6th September 2010 - A bug fix release. v4.7.5 31st August 2010 - Added QStringRef.__str__() and QStringRef.__unicode__() to the QString v1 API. - The destruction by Qt of internally constructed QObject instances is now automatically detected. - A signal defined with pyqtSignal() can now be used with methods that make an internal call to QObject::connect(), e.g. QTimer.singleShot(). - Added the --from-imports command line argument to pyuic4 and the from_imports argument to PyQt4.uic.compileUi(). - Added support for Python v3.2. - The Windows installer now includes qcollectiongenerator.exe and qhelpgenerator.exe. v4.7.4 12th July 2010 - Any class with a count() method now supports the len() builtin. - Added the missing == and != operators to QItemSelection. - Added readQVariantHash(), readQVariantList(), readQVariantMap, writeQVariantHash(), writeQVariantList() and writeQVariantMap() to QDataStream. - Added the ErrorPageExtensionOption and ErrorPageExtensionReturn classes, and the ErrorDomain enum to QWebPage. v4.7.3 16th April 2010 - Added evaluateToString() and evaluateToStringList() to QXmlQuery. v4.7.2 17th March 2010 - A bug fix release. v4.7.1 17th March 2010 - Added the schema.py example. - Added the missing pushContext() and popContext() to QScriptEngine. - A QStyleOption instance will be wrapped as a specific sub-class where possible. v4.7 14th January 2010 - Qt v4.6 is fully supported. - Added the QtMultimedia module. - Added keyword support for optional arguments. - Added docstrings for all classes, functions and methods that describe the Python signatures of all callables. - Any Python object that can be pickled can now be automatically written to and read from QSettings. - A QHostAddress.SpecialAddress can be used whenever a QHostAddress is expected. - Added the optional initialFilter argument to the QFileDialog.get*AndFilter() functions. - Added the readInt(), readQString(), readQStringList(), readQVariant(), writeInt(), writeQString(), writeQStringList() and writeQVariant() methods to QDataStream. - Added 'widgetPluginPath' to the uic module to specify the directories that are searched for widget plugins. - Added the anchorlayout.py, animatedtiles.py, appchooser.py, easing.py, lighting.py, moveblocks.py, states.py and stickman.py examples. - Significantly reduced the size of the modules on Linux and MacOS/X. - Added support for configuring and building outside of the source tree (for standard builds). v4.6.2 20th November 2009 - A bug fix release. v4.6.1 23rd October 2009 - Added the missing setDropAction() method to QGraphicsSceneDragDropEvent. - Added the QMacCocoaViewContainer class on OS/X. - An updated sandbox.py from Mark Summerfield. v4.6 26th September 2009 - Qt properties can be initialised using keyword arguments passed when creating an instance. - Signals can be connected using keyword arguments passed when creating an instance. - Added the QObject.pyqtConfigure() method to set Qt properties and connect signals using keyword arguments at any time. - Python v2.6 and later allow a Python bytearray to be used whenever a QByteArray is expected. - Added the getOpenFileNameAndFilter(), getOpenFileNamesAndFilter() and getSaveFileNameAndFilter() static methods to QFileDialog. - A QLatin1String can be passed whenever a QString is expected. - The following APIs have been defined to allow applications to specify which incompatible API they want to use: QDate, QDateTime, QString, QTextStream, QTime, QUrl and QVariant. See the section "Selecting Incompatible APIs" in the documentation for a description of the differences in the APIs. - Added the compileUiDir() function to the uic module. v4.5.4 27th July 2009 - A bug fix release. v4.5.3 27th July 2009 - A bug fix release. v4.5.2 14th July 2009 - Added support for the two QImage constructors that operate on non-const data by allowing a sip.voidptr to be passed. - Added support for QHeaderView to pyuic4. - Any Python object can now be passed where a QVariant is expected. None is interpreted as an invalid QVariant. - Added the QAxContainer module to the GPL version. v4.5.1 16th June 2009 - Added the setCoordinateMode() and coordinateMode() methods to QGradient. v4.5 5th June 2009 - Added support for Qt v4.5.1. - Added support for Python v3. - Added the QInputContextFactory class. - A new, more Pythonic, API has been added for connecting signals and slots which does not require knowledge of C++ data types. - New signals can now be defined using pyqtSignal as a more Pythonic replacement of the (now deprecated) __pyqtSignals__ class attribute. - Added the pyqtSlot decorator as a more Pythonic replacement of the (now deprecated) pyqtSignature decorator. - The "type" argument to pyqtProperty() can also be a Python type object. - The "type" argument to Q_ARG() can also be a Python type object. - The "type" argument to Q_RETURN_ARG() can also be a Python type object. - Added QT_TR_NOOP_UTF8(). - super() works without restrictions. - Replaced the old qtdemo example launcher with a port of the newer version with help from Grissiom, Matthew Smith and Henning Schroeder. - Added the editabletreemodel.py example from Cyril Romain. - Added the fetchmore.py example from Darryl Wallace. - Replaced the old tutorial with the newer Address Book tutorial. v4.4.4 8th November 2008 - QVariant.toPyObject() will now handle any Python object. The way in which QVariant wraps objects has subtlely changed in that the name returned by typeName() may now be different, but is now more consistent. - Added the data() method to the QPolygon, QPolygonF and QXmlAttributes classes. - Added the --no-designer-plugin option to configure.py to disable the building of the Python plugin for Qt Designer. - Added the missing Windows and Mac versions to QSysInfo. v4.4.3 8th Aug 2008 - Added support for Qt v4.4.1. - A QChar can now be used whenever a QString is expected. - All read related methods that take a maximum read length will now raise an exception if the length is negative. - The QVariant constructor that took a QVariantList argument has been replaced with the fromList() static method. - The QVariant constructor that took a QVariantMap argument has been replaced with the fromMap() static method. - Added the embeddeddialogs.py and padnavigator.py examples from Igor Prischepoff. v4.4.2 20th May 2008 - A bug fix release. v4.4.1 20th May 2008 - Added the QRunnable and QThreadPool classes. v4.4 13th May 2008 - Added support for Qt v4.4 including the new QtHelp, QtWebKit, QtXmlPatterns and phonon modules. - Added support for QMetaObject.invokeMethod(), Q_ARG() and Q_RETURN_ARG(). - Added support for QObject.staticMetaObject. - Added support for QScriptEngine.newFunction(). - pyqtSignature() now supports the specification of the types of return values. - Added support for slots that return values. - Any Python object can now be wrapped as a QVariant. - pyqtProperty() now supports DESIGNABLE, SCRIPTABLE, STORED and USER (based on a patch from Ulrich Berning). - Added __repr__ support to QByteArray, QChar, QDate, QDateTime, QLatin1Char, QLatin1String, QLine, QLineF, QPoint, QPointF, QRect, QRectF, QRegExp, QSize, QSizeF, QString, QTime, QUrl and QUuid (based on a patch from Giovanni Bajo). - Added the --pyqt3-wrapper argument to pyuic4 to generate a PyQt3 style wrapper (from a patch from Ulrich Berning). - Added the musicplayer.py and capabilities.py Phonon examples. - Added the diagramscene.py example from Rajev Sebastian. - Added the systray.py example from Daniel Harding. - Added the Qt Designer multi-page widget, PyDateEdit and PyDateTimeEdit plugin examples from Ulrich Berning. v4.3.3 5th December 2007 - Added support for Qt v4.3.3. v4.3.2 5th December 2007 - Added the --confirm-license option to configure.py. - The GPL license now has the same exceptions as Qt. v4.3.1 28th September 2007 - Added the pyqtRemoveInputHook() and pyqtRestoreInputHook() functions to the QtCore module. - Added the sandbox GUI shell from Mark Summerfield. - Added the dragdroprobot.py example from Lieven Buts. v4.3 30th July 2007 - Added support for Qt v4.3.0. - partial functions may now be used as slots. - The QByteArray, QChar, QColor, QDate, QDateTime, QKeySequence, QLatin1Char, QLatin1String, QLine, QLineF, QMatrix, QPoint, QPointF, QPolygon, QRect, QRectF, QSize, QSizeF, QString and QTime classes and all enums may be pickled. - configure.py now supports long option names. - Changed the meaning of the -d (--destdir) option to configure.py so that the PyQt4 directory always exists. - Added the --consolidate option to configure.py to generate a consolidated module (only useful if Qt was built as static libraries). - Added the --plugin option to configure.py to specify which of Qt's static plugins should be included (only useful if Qt was built as static libraries). - Added the --enable option to configure.py to specify explicitly which modules are to be built. - Added the --no-qsci-api option to configure.py to disable the installation of the QScintilla API file. - Added the --no-sip-files option to configure.py to disable the installation of the .sip files. v4.2 10th April 2007 - Added the QtDesigner module to allow Qt Designer to be extended using PyQt. This includes the ability to write widget plugins in Python. Many examples are included. - The __pyqtSignals__ class attribute is used to dynamically create new Qt signals. - The existing QtCore.pyqtSignature() decorator can now be used to dynamically create new Qt slots. - The QtCore.pyqtProperty() function is used to dynamically create properties that behave as Qt properties and Python properties at the same time. - Added an implementation of the Qt event loop to be used with the standard Python DBus bindings (v0.80 and later). - A QGradient can be used whenever a QBrush is expected. - A StandardKey can be used whenever a QKeySequence is expected. - On X11 added the QApplication ctors that accept a Display *. - Added qt_set_sequence_auto_mnemonic(), qt_x11_wait_for_window_manager(), qt_mac_secure_keyboard(), qt_mac_set_dock_menu(), qt_mac_set_menubar_icons(), qt_mac_set_menubar_merge(), qt_mac_set_native_menubar() and qt_mac_set_press_and_hold_context() to the QtGui module. - Added support for PyOS_InputHook. - Added the basicsortfiltermodel.py example. v4.1.1 9th December 2006 - lambda functions may now be used as slots. - Added support for Qt Designer v4.2 palettes to pyuic4. v4.1 4th November 2006 - Added support for Python v2.5. - Added support for Qt v4.2 (except for the QtDBus module). - Added the QAxContainer module for the commercial version for Windows. - Added context manager support to the QMutexLocker, QReadLocker and QWriteLocker classes. - Added the QtTest module (only those functions that simulate user interaction). - Added the missing QStylePainter class. - Added the QX11EmbedContainer and QX11EmbedWidget classes for X11. - A Python date object can be used whenever a QDate is expected. - Added the QDate.toPyDate() method to convert a QDate to a Python date object. - A Python datetime object can be used whenever a QDateTime is expected. - Added the QDateTime.toPyDateTime() method to convert a QDateTime to a Python datetime object. - A Python time object can be used whenever a QTime is expected. - Added the QTime.toPyTime() method to convert a QTime to a Python time object. - Added support for Q_ENUMS and Q_FLAGS. - pyrcc4 now conforms to PEP 263. - Added the 2dpainting.py, collidingmice.py, elasticnodes.py, overpainting.py and webbrowser.py examples. - A PyQt4 API file is installed if QScintilla2 is found. v4.0.1 15th July 2006 - QPolygon can be constructed from a Python list of pairs of integer coordinates. QPolygon.setPoints() can also take a Python list of pairs of integer coordinates. - pylupdate4 can now handle .ui files. - pyqt_config_args was added to pyqtconfig.py. v4.0 10th June 2006 - A complete rewrite for Qt v4.