Improved detection of common members
The ability to automatically _generate_ the common members, used by Qt.py, makes it much easier to spot new additions to e.g. PySide2. Run `build_membership.sh` to generate a JSON file per binding, which are then compared. The result is written to a `common_members.json` and can be copy-pasted into Qt.py. This comparison leverages the tests suite and uses the binding versions used in the latest test suite.
Once the binding versions used by the tests suite gets updated (usually annually during a VFX Platform update), we will check for new members, using this new approach.
See [DOCKER.md](DOCKER.md) for more info.
<br>
New members
QtCore.QItemSelectionRange thanks to Ahuge
QtCore.QT_TRANSLATE_NOOP
QtCore.QT_TR_NOOP
QtCore.QT_TR_NOOP_UTF8
QtGui.DesktopServices
QtGui.QTouchEvent
QtGui.qRgba
QtMultimedia.QAbstractVideoBuffer
QtMultimedia.QAbstractVideoSurface
QtMultimedia.QAudio
QtMultimedia.QAudioDeviceInfo
QtMultimedia.QAudioFormat
QtMultimedia.QAudioInput
QtMultimedia.QAudioOutput
QtMultimedia.QVideoFrame
QtMultimedia.QVideoSurfaceFormat
QtPrintSupport.QAbstractPrintDialog
QtPrintSupport.QPageSetupDialog
QtPrintSupport.QPrintDialog
QtPrintSupport.QPrintEngine
QtPrintSupport.QPrintPreviewDialog
QtPrintSupport.QPrintPreviewWidget
QtPrintSupport.QPrinter
QtPrintSupport.QPrinterInfo
QtSql.QSql
QtSql.QSqlDatabase
QtSql.QSqlDriver
QtSql.QSqlDriverCreatorBase
QtSql.QSqlError
QtSql.QSqlField
QtSql.QSqlIndex
QtSql.QSqlQuery
QtSql.QSqlQueryModel
QtSql.QSqlRecord
QtSql.QSqlRelation
QtSql.QSqlRelationalDelegate
QtSql.QSqlRelationalTableModel
QtSql.QSqlResult
QtSql.QSqlTableModelQtSql
QtSvg.QGraphicsSvgItem
QtSvg.QSvgGenerator
QtSvg.QSvgRenderer
QtSvg.QSvgWidget
QTest.QTest
QtX11Extras.QX11Info thanks to assumptionsoup
QtXmlPatterns.QAbstractMessageHandler
QtXmlPatterns.QAbstractUriResolver
QtXmlPatterns.QAbstractXmlNodeModel
QtXmlPatterns.QAbstractXmlReceiver
QtXmlPatterns.QSourceLocation
QtXmlPatterns.QXmlFormatter
QtXmlPatterns.QXmlItem
QtXmlPatterns.QXmlName
QtXmlPatterns.QXmlNamePool
QtXmlPatterns.QXmlNodeModelIndex
QtXmlPatterns.QXmlQuery
QtXmlPatterns.QXmlResultItems
QtXmlPatterns.QXmlSchema
QtXmlPatterns.QXmlSchemaValidator
QtXmlPatterns.QXmlSerializer"
<br>
Removed QtCore.QMetaType member
The `QtCore.QMetaType` member was removed as it was wrongly added to Qt.py.
<br>
New tests suite
A new tests suite was added. Qt and its bindings are compiled from source using the CY2018 VFX Platform standards. This adds better support for testing with Python 3.x and removes the dependency of the Ubuntu PPAs previously used to install the Qt bindings.
bash
cd Qt.py
Run nosetests (Linux/OSX)
docker run --rm -v $(pwd):/Qt.py -e PYTHON=2.7 fredrikaverpil/qt.py:2018
docker run --rm -v $(pwd):/Qt.py -e PYTHON=3.4 fredrikaverpil/qt.py:2018
docker run --rm -v $(pwd):/Qt.py -e PYTHON=3.5 fredrikaverpil/qt.py:2018
docker run --rm -v $(pwd):/Qt.py -e PYTHON=3.6 fredrikaverpil/qt.py:2018
Run nosetests (Windows)
docker run --rm -v %CD%:/Qt.py -e PYTHON=2.7 fredrikaverpil/qt.py:2018
docker run --rm -v %CD%:/Qt.py -e PYTHON=3.4 fredrikaverpil/qt.py:2018
docker run --rm -v %CD%:/Qt.py -e PYTHON=3.5 fredrikaverpil/qt.py:2018
docker run --rm -v %CD%:/Qt.py -e PYTHON=3.6 fredrikaverpil/qt.py:2018
The test suite will be updated anually, around the time of SIGGRAPH and when the VFX Platform usually gets updated.
For more information on running the tests, see [README.md](README.md) and [DOCKER.md](DOCKER.md).
<br>
Support for Python 2.6
Qt.py now works with Python 2.6, thanks to contributions made by Ahuge (see 245). However, keep in mind that the automatic tests don't apply to Python 2.6.
<br>
Upgraded QtCompat
An additional layer was added to `QtCompat` to facilitate more members.
**Before**
python
from Qt import QtCompat
QtCompat.setSectionResizeMode
**After**
python
from Qt import QtCompat
QtCompat.QHeaderView.setSectionResizeMode
**Backwards compatibility is maintained**, at least till the next major version release.
<br>
Pre-release installation
**Install**
To install a pre-release, prepend `--pre` to your `pip install`.
bash
$ pip install --pre -U Qt.py
To upgrade an existing install, prepend `-U` as well.
bash
$ pip install --pre Qt.py
<br>
`QtSiteConfig`
Version 1.1.0.b3 added support for overriding available members of Qt.py on import, to either add custom members and modules, or remove them.
- [Documentation](https://github.com/mottosso/Qt.pyqtsiteconfigpy)
<br>
Added `wrapInstance` and `getCppPointer`
The `shiboken` of PySide and `sip` of PyQt have found a home in `QtCompat`.
python
from Qt import QtCompat
QtCompat.wrapInstance(...)
They work similar as you would expect. See [the release notes for 1.1.0.b1](https://github.com/mottosso/Qt.py/releases/tag/1.1.0.b1) for details and examples.