Details
-
User Story
-
Resolution: Fixed
-
P1: Critical
-
None
-
None
Description
Qt 6 is around the corner. it needs to be investigated what changes are necessary in Qt6 to enable Qt for Python 6.x releases easier.
The following are just ideas, and need to be discussed with the whole team before making any official statement.
1. Rename the Python module (Qt6 only) (Done in 6.0)
- PySide2 is a confuse name for our module. We should consider a simple rename to keep track with Qt versions.
- Having PySide6 will remove all issues related what's the relationship with Qt5 and Qt6.
- PyQt also follows this approach.
2. Qt tools compatibility (Done in 5.14)*
- uic and rcc are almost 100% ready to be Python compatible.
- We could drop pyside2-uic and pyside2-rcc support, and ship uic, and rcc instead.
- The same could be applied to Qt Designer.
3. Drop Python 2 support (Qt6 only) (Done in 6.0)
- Python 2 will be deprecated starting from 01.01.2020, and we need to make a decission.
- An idea could be to keep support for Qt5.X, but leave Qt6 compatible with Python 3.5+ only.
4. MetaWidgets
- Provide a set of high level ready-to-use widgets, to quickly represent data from other python modules.
- Avoid boilerplate code in cases we could use a Pythonic approach, e.g.: QtChart Series and QTable* fill.
5. Make PySide more Pythonic (Qt6 only) (Done in 6.0)
- Break Qt API in some places when it's required, e.g.: exec_() -> execute(), QApplication as decorator, etc.
6. Support smart pointers in shiboken
- Qt6 will contain many, and we will need to improve shiboken to properly handle them.
7. Python properties (Qt6 only) (Done in 6.0)
- At the moment QtProperties and Python Properties don't play well, and would need a bit of work to make them 100% functional.
- Qt 6's property system/API may receive an overhaul which in turn imposes changes on Qt for Python 6
- see
PYSIDE-1019
8. Support std::function
- (╯°□°)╯︵ ┻━┻
9. Make shiboken_generator easy-to-use (Done in 6.1 Commercial)
- Currently, even a "Hello World" example require a long and complex CMakeLists.txt to be compiled, this should change.
- Also, shipping shiboken_generator in a better way, to avoid the need of build from source.
10. Separate PySide2 into multiple pip packages
- QtCore package, QtGui package, etc.
- or perhaps at a bigger granularity (QtEssentials, QtWebEngine, QtAddons)
11. Embedded support
- Provide a Yocto-based image that includes Qt for Python,
- Generate wheels for Raspberry Pi https://www.piwheels.org/
12. Investigate QML Support (Qt6 only) (Partially done in 6.0)
- There's certain missing QML support due to limitations of private API in qtdeclarative. Figure out what needs to be changed to allow easier integration of Python + QML (things like qRegisterUncreatableType
PYSIDE-574or having a maximum amount of possible QML typesPYSIDE-811) - planned Qt6 changes will impose work for Qt for Python
13. Adopt type annotations (Done in 6.0)
- Moving forward to having safer application we can at least type check.
- MyPy, Pyre, Pyright, or Pytype
14. Asyncio support / event loop integration
Attachments
Issue Links
- depends on
-
PYSIDE-1241 Support std::function
-
- Closed
-
- relates to
-
PYSIDE-1019 Follow the Qt/C++ API style in regards of properties
-
- Closed
-
- mentioned in
-
Page Loading...
For Gerrit Dashboard: PYSIDE-904 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
300265,3 | Revert "shiboken: Remove unused static functions" | dev | pyside/pyside-setup | Status: DEFERRED | +2 | 0 |
301126,23 | Initial port of Core,Gui,Widgets,Network,Qml,Quick to Qt 6 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
305534,3 | Change the return type of the hash functions to Py_ssize_t | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
305667,6 | Remove pyside-tools | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
306075,3 | qp5_tool.py: Add an configuration key for the CMake generator | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
306121,2 | shiboken2: Do not strip arguments of unknown types of virtual functions | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
306122,2 | CMake: Use the portable Qt feature properties | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
306735,2 | qfontmetrics_test.py: Stop using deprecated API | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
306738,3 | QByteArray::number(): suppress small integer types as is for setNum() | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
306798,1 | WIP: shiboken2: Fix exception handling for C++ 17 | 5.15 | pyside/pyside-setup | Status: ABANDONED | -2 | 0 |
306802,7 | Port some examples from QRegExp to QRegularExpression | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
306873,3 | QByteArray::number(): Remove non-existent exclusions of number() | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
306886,2 | Fix QQmlIncubationController::incubateWhile() | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307091,10 | Blacklist failing tests for Qt 6 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307102,5 | shiboken2: Fix exception handling for C++ 17 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307133,8 | shiboken2/clangparser: Refactor code snippet extraction handling | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307198,1 | WIP: Dummy shiboken2/clangparser: Refactor code snippet extraction handling | dev | pyside/pyside-setup | Status: ABANDONED | -2 | 0 |
307477,3 | Fix OpenGLFunctions for Qt 6 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307597,4 | shiboken2: Handle virtual methods returning a reference | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307708,2 | Re-add QtOpenGL | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307710,2 | Add QtOpenGLWidgets | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307723,2 | shiboken2: Fix build with MSVC2019 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307740,2 | shiboken2: Adapt compiler options for MSVC | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307843,3 | Fix build of PySideQTouchEventSequence | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
307968,3 | QtGui: Rename all QEvent members according to the m_ convention | dev | qt/qtbase | Status: MERGED | +2 | 0 |
307972,2 | QtGui: Update field names of QEvent-derived and related classes | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308034,2 | QtGui: Simplify Q*Event member exclusion | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308038,3 | QByteArray: Remove signatures of some functions taking const char* | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308039,3 | Re-add QtSvg | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308167,4 | Fix libsample/photon test for Qt 6 / Windows | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308185,2 | Fix build after qtbase/054b66a65748c9ebfafeca88bf31669a24994237 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308186,2 | Re-add QtUiTools | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308276,3 | Fix some QPixmap-related issues | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308277,2 | Fix the QtUiTools tests | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308344,6 | Fix comparison of classes inheriting QList | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308386,2 | Enable adding operators ==, != as functions without code injection | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308464,2 | Test signal_arguments.py: Use Qt Quick Controls 2 | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
308694,2 | Fix a few examples to work | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
310446,2 | Fix build of qtbase modules | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
310482,2 | Port some tests away from deprecated API | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
310483,2 | Fix QLineF-test | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
310586,2 | Remove QtWidgets test bug_714.py | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
310707,3 | Start porting away from QStringRef | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
310890,2 | Remove QStringRef | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
310891,6 | Add QStringView/QByteArrayView | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312261,4 | shiboken2: Use the cmake targets provided by LLVM | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312339,2 | Remove QPagedPaintDevice::Margins | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312399,1 | WIP: Add QStringView/QByteArrayView | dev | pyside/pyside-setup | Status: ABANDONED | -2 | 0 |
312403,1 | WIP: Add an autotest for views | dev | pyside/pyside-setup | Status: ABANDONED | -2 | 0 |
312496,2 | Fix some warnings in QtNetwork | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312504,3 | Remove Python2 from C++ code | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312535,2 | Rename QFileDevice::MemoryMapFlags | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312536,2 | Remove most QT_VERSION checks | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312581,2 | Further cleanups of Python2 in C++ code | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312582,3 | Remove Python2 from shiboken tests | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312638,3 | Remove Python2 from PySide2 tests | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312684,2 | Remove QtScript, QtXmlPatterns | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312685,2 | Fix QtSql to build | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312692,2 | Bump cmake version to 3.16 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312702,3 | Add QKeyCombination | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312705,5 | Clean up some warnings | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312760,6 | Further cleanup of CMakeLists | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312772,2 | Remove the pyside-tools module | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312846,2 | Fix some tests | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
312981,3 | Remove pyside-tools from qp5_tool | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
313223,4 | Re-add missing tools | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
313459,3 | Adapt to new changes in qtbase | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
313548,2 | Add Active Qt | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
313925,5 | Adapt to changes in qtbase | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
314329,2 | Re-add Qt 3D | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
314331,2 | signature: Add size_t as int type | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
314395,2 | shiboken2: Add attribute for generating "using namespace" | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
315002,2 | Adapt to recent changes in qtbase | dev | pyside/pyside-setup | Status: ABANDONED | 0 | 0 |
315943,4 | Adapt to recent changes in qtbase | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
315981,2 | Fix QBitArray-related tests of QDataStream | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
316470,2 | Fix some tests | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
316710,3 | Remove obsolete OpenGL function modifications | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
316788,2 | Replace deprecated API in examples | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
316789,2 | Fix some examples to run with Qt 6 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
316827,3 | Brush up the basicsortfiltermodel example | 5.15 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
318135,3 | Fix QMutexLocker | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
319107,2 | shiboken2: Remove version suffix from generators directory | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
319127,4 | remove traces of Python2 from Python code | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
319172,10 | Rename shiboken2 to shiboken6 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
319246,2 | remove traces of Python2 from C code | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
319633,4 | shiboken6: Consolidate argument type parsing of added functions | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
319634,4 | shiboken6: Add element <declare-function> | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
319635,4 | shiboken6: Enable declaring functions on container types | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
319636,7 | Declare some missing functions in QList | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
320018,3 | replace **locals by f-strings where possible | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
320047,4 | Rename PySide2 to PySide6 | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
320801,3 | python3: remove all obsolete "from __future__" import statements | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
330622,5 | QtCharts: Remove namespace | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
331485,5 | PySide6: Re-add QStateMachine | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
399132,2 | shiboken6: Enable declaring top-level functions | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
399227,2 | shiboken6: Enable declaring top-level functions | 6.2 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
399229,1 | shiboken6: Enable declaring top-level functions | tqtc/lts-5.15 | pyside/tqtc-pyside-setup | Status: ABANDONED | 0 | 0 |
440511,11 | Fix build error with forward declarations | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
440901,2 | Fix build error with forward declarations | 6.4 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
440907,2 | Fix build error with forward declarations | tqtc/lts-6.2 | pyside/tqtc-pyside-setup | Status: MERGED | +2 | 0 |