Qt for Python 6.2.0 is a minor release. For more details, refer to the online documentation included in this distribution. The documentation is also available online: https://doc.qt.io/qtforpython/ Some of the changes listed in this file include issue tracking numbers corresponding to tasks in the Qt Bug Tracker: https://bugreports.qt.io/ Each of these identifiers can be entered in the bug tracker to obtain more information about a particular change. **************************************************************************** * PySide6 * **************************************************************************** - Crashes in QClipboard.mimeData(), QTextCursor.currentList() and QTextCursor.currentTable() have been fixed. - The Python Unicode API was updated to the newest version when not in limited API mode, too. - The function QUrl.fromFilePath supports now the os.PathLike structure in addition to string arguments. - QMultiMap and QMultiHash are now converted to a dict of key/list of values (corresponding to defaultdict). - QThreadPool().start(std::function) and tryStart(std::function) have been added. - [PYSIDE-131] The `tr` function now works also for PySide derived Python class instances with the right context. - [PYSIDE-487] Implement qmlRegisterSingletonInstance - [PYSIDE-535] Tests which use reference counting need to be skipped in upcoming PyPy builds. - [PYSIDE-535] During replacement of type extender macros by functions, a hidden enum/flags alias error was detected and fixed. - [PYSIDE-1252] pyside6-lupdate and the related tools from Qt Linguist have been re-added, enabling using the Qt translation system. - [PYSIDE-1252] The tr() translation method of QObject has been changed to be a class method. This makes it possible to use tr() on a class without instantiation. - [PYSIDE-1334] QObject.connect() now returns an instance of QMetaObject.Connection which can be used to disconnect instead of a bool. - [PYSIDE-1362] A crash in QCustom3DVolume::setTextureData() has been fixed. - [PYSIDE-1378] Assistant is now shipped along with PySide. - [PYSIDE-1436] Support Python 3.10 - [PYSIDE-1436] Feature switching needs to reset the internal type cache. This was an omittion that becomes relevant in Python 3.10 . - [PYSIDE-1482] A number of missing classes from the qtbase, qt3d, qtdeclarative. repository have been added. - [PYSIDE-1482] A number of free functions from QtQml have been added. - [PYSIDE-1482] QSharedMemory was added. - [PYSIDE-1499] pathlib.Path gets additionally accepted for all function arguments which have a std::filesystem::path type. - [PYSIDE-1570] The QtDBus module has been added. - [PYSIDE-1570] The QtNetworkAuth module has been added. - [PYSIDE-841] examples: clean and update code, add more screenshots, remove version numbers from qml imports and new examples: dynamic spline, string and object list models, markdowneditor, data surface, abstract list model qml, opengl under qml, richtext/textedit, linguist, qsharedmemory. - [PYSIDE-841] tutorials: update datavisualization and expenses - [PYSIDE-862] Allow spaces in ClassInfo keys - [PYSIDE-905] PySide6: Add Qt::FindChildOptions to QObject::findChild(ren) - [PYSIDE-907] PySide6: Add QKey support for the setShortcut method - [PYSIDE-1019] __feature__: Support generation of modified .pyi files and fix default instances. - [PYSIDE-1019] pyi_generator: Optimize imports - [PYSIDE-1019] feature: move getFeatureSelectId to Shiboken and refactor - [PYSIDE-1019] Shiboken: Remove cheating macros - [PYSIDE-1033] cmake: Fix option --sanitize-address - [PYSIDE-1112] sample binding: Document how to force MSVC in case CMake detects clang - [PYSIDE-1112] PySide6: Update documentation on Qt Designer and resource files - [PYSIDE-1160] PySide6: Expose QHostInfo.lookupHost() - [PYSIDE-1252] PySide6: Add entry points for the Qt Linguist tools - [PYSIDE-1252] ApiExtractor: add classmethod attribute to add-function for tr() - [PYSIDE-1252] ApiExtractor: add classmethod attribute to add-function, fix - [PYSIDE-1329] PySide6: Fix signature of QObject.tr() - [PYSIDE-1334] Return QMetaObject.Connection from QObject.connect() - [PYSIDE-1362] Fix crash in QCustom3DVolume::setTextureData() - [PYSIDE-1370] PySide6: Add QSharedMemory - [PYSIDE-1378] PySide6: Add assistant executable - [PYSIDE-1378] build scripts: Extract helper functions to patch executables - [PYSIDE-1378] Build scripts/UNIX: Extract helper function to copy GUI executables - [PYSIDE-1378] PySide6: Add some information on the tools - [PYSIDE-1415] Turn generate_pyi into a general pyi_generator tool - [PYSIDE-1415] Remove SimpleNamespace Python Implementation - [PYSIDE-1437] Revert "Allow calling CI's build scripts with python2" - [PYSIDE-1438] Fix QSurfaceDataProxy::resetArray() crash - [PYSIDE-1455] Turn off numpy support in libpyside by default - [PYSIDE-1455] Fix Designer plugin to load on Linux/macOS, add hints for trouble-shooting. - [PYSIDE-1467] PySide6: Fix signature of CoreApplication.instance() - [PYSIDE-1482] Re-add QtMultimedia/Widgets, fix examples, and missing classes. - [PYSIDE-1482] PySide6/signature: Add PySideSignalInstance - [PYSIDE-1482] libpyside: Add type check for PySideSignalInstanceType - [PYSIDE-1482] Add classes QChannel, QChannelComponent, QSignalSpy and more non-template QML functions - [PYSIDE-1482] PySide6/QSignalSpy: Add constructor taking a signal - [PYSIDE-1482] Add further global functions - [PYSIDE-1482] VoidPtr: Add setters and getters for the size, and isWritable - [PYSIDE-1499] cppgenerator: remove a left-over "this" to get rid of a warning - [PYSIDE-1499] build support for pathlib.Path, migrating examples, and qml load functions - [PYSIDE-1523] Document the usage of Nuitka - [PYSIDE-1556] Fix cmake argument for standalone macOS - [PYSIDE-1563] Fix crashes when using the QImage(uchar *) data constructors - [PYSIDE-1563] Revert "Fix crashes when using the QImage(uchar *) data constructors" - [PYSIDE-1563] Fix error about not holding the GIL when releasing QImage memory - [PYSIDE-1566] Fix Designer plugin to load on macOS - [PYSIDE-1568] CMake: Rename the ENABLE_ platform variables - [PYSIDE-1568] Remove QtX11Extras, QtMacExtras and per-platform typesystem files - [PYSIDE-1568] Introduce conditional processing instructions to typesystem XML - [PYSIDE-1570] Add QtDBus module, QtNetworkAuth QtWebEngineQuick and initial Support for QtBluetooth - [PYSIDE-1570] Re-add QtWebEngine - [PYSIDE-1570] Fix assert when retrieving wrapper from different thread - [PYSIDE-1571] PySide6: Add BluetoothServiceInfo::Alternative, Sequence - [PYSIDE-1583] PySide6: Extend the porting guide - [PYSIDE-1584] mdi/application examples: Fix startup without settings file - [PYSIDE-1585] PySide6: Refactor qvariant conversion code - [PYSIDE-1588] Use replaced types in functions signatures - [PYSIDE-1589] nuitka: Fix slot access for compiled functions - [PYSIDE-1593] PyClassProperty: Correct the decorator and publish the class - [PYSIDE-1599] testing: enforce that .pyi files are always tested - [PYSIDE-1609] PySide6: Fix crashes in QObject.findChild() - [PYSIDE-1609] PySide6: Add a test for QObject.findChildren() by type - [PYSIDE-1611] PySide6: Add missing API of QQuickFramebufferObject.Renderer - [PYSIDE-1614] Fix logging level being set when importing PySide6 - [PYSIDE-1617] Fix leak in QML ListProperty type - [PYSIDE-1619] Add fallback case for QSettings.value - [PYSIDE-1621] signature: make zip file access totally virtual - [PYSIDE-1621] signature: update and make embedding aware - [PYSIDE-1621] Remove signature loader completely from physical FS - [PYSIDE-1623] PySide6: Add Qt Quick Controls 2 to the documentation - [PYSIDE-1625] PySide6: Fix QMenu.exec_() - [PYSIDE-1626] feature: fix the UIC switching problem - [PYSIDE-1626] PySide6: Work around uic feature test failure - [PYSIDE-1629] PySide6: Fix crash with qmlRegisterSingletonType() when invoked from JavaScript - [PYSIDE-1636] Fix GLES builds - [PYSIDE-1639] Allow threads for QInputDialog templates, and QAbstractSocket methods. - [PYSIDE-1646] Fix for OpenGL types on macOS - [PYSIDE-1647] Fix crash when constructing a QApplication in an embedded application - [PYSIDE-1650] PySide6: Add QAccessible::installFactory() - [PYSIDE-1650] PySide6: Add QAccessibleActionInterface - [PYSIDE-1659] PySide6: Document QUiLoader restriction wrt signal/slot connections - [PYSIDE-1662] Fix Qt Quick painteditem example to work, and run from a different directory - [PYSIDE-1663] Add QWebEnginePage::setWebChannel(QWebChannel*,quint32) - [QTBUG-75870] qtpaths is now used to query Qt properties. - [QTBUG-75870] build scripts: Remove qtchooser handling, replace qmake mkspec parsing by cmake, and introduce qtpaths as qmake replacement - [QTBUG-95649] Disable gestures from QtSensors **************************************************************************** * Shiboken6 * **************************************************************************** - [PYSIDE-535] Accept empty dicts as alternative to setting unused keyword dicts to nullptr. - [PYSIDE-535] The type extension macros are replaced by normal function calls. This is not only a pre-requisite for PyPy support but also an improvement of type safety. - [PYSIDE-535] Type creation was completely encapsulated. The implementation can now be rewritten for PyPy. - [PYSIDE-535] Define SbkObjectType to be a PyTypeObject, and remove SbkObjectType from the API - [PYSIDE-535] SbkObjectType is now a typedef for PyTypeObject and SbkType_FromSpec() has been changed to return a PyType_Object *. - [PYSIDE-535] It is now possible to derive classes from enum types like `QtCore.Key` in earlier Python versions. - [PYSIDE-1334] operator bool can now be used for bool conversions (nb_bool) besides Qt-style isNull() methods. - [PYSIDE-1436] The Zip importer was rewritten for the Python 3.4 API which avoids warnings in Python 3.10 . - [PYSIDE-1436] The parser for .pyi files needed an update because of undocumented changes in typing.py for Python 3.10 . - [PYSIDE-1436] Binary flags operators did check cppArg only, but not cppSelf. This is necessary when arguments are swapped. Recognized in Python 3.10 due to improved error checks in debug mode. - [PYSIDE-1436] A very old refcounting bug from 2012 in the sample XML led to a crash in Python 3.10 . This bug was found because the refcounting of Python is more exact, now. - [PYSIDE-1588] It is now possible to specify a function argument type to appear in the .pyi files. - [PYSIDE-1605] Support for opaque C++ sequence scontainers has been added, allowing to pass a wrapped C++ container directly instead of converting it back and forth from Python sequences. - [PYSIDE-1626] Coexistence of different feature selections works now, especially for UIC files and inheritance. - [PYSIDE-1621] Python support files are now always embedded. There is no longer a physical copy installed in the file system. - [PYSIDE-1637] The temporary alias shiboken6.shiboken6 for the Shiboken module was removed. Now there is an unambiguous shiboken6.Shiboken, only. - [PYSIDE-1653] The handling of hidden base class member functions and using declarations has been fixed. - [PYSIDE-1655] stack-use-after-scope ASAN issues in the type system parser have been fixed. - [PYSIDE-1660] CPython types like PyObject, PySequence are now built into shiboken6 and no longer need to be specified in the typesystem files. - [PYSIDE-1568] Construction of abstract classes whose C++ wrapper is disabled has been disabled. - It is now possible to specify a check function for custom types in the typesystem. - A new, simpler normalization function has been introduced for signatures of added functions (which means for example that const-ref is preserved). - The replacement of %PYARG_0 in C++ wrapper classes (native) has been improved and no longer requires adding casts to PyObject *.