Skip to content

Conversation

@MHendricks
Copy link
Collaborator

@MHendricks MHendricks commented Jan 2, 2026

The second of several pull requests to update Qt.py, dropping support for Qt4. Removes support for python 3.6 and below as well as support for Qt4(PySide, PyQt4). This includes Cy2020 support of Qt5.13 and is intended to be the 2.0 release of Qt.py.

NOTE: This will be rebased and merged on top of #449. See roadmap for the plan.

@MHendricks MHendricks added the v2.0 To be implemented in the 2.0 release of Qt.py label Jan 2, 2026
@MHendricks MHendricks self-assigned this Jan 2, 2026
@MHendricks MHendricks changed the title Mikeh/2.0 drop qt4 Drop support for Qt 4 and python 3.6 and below Jan 2, 2026
@MHendricks MHendricks force-pushed the mikeh/2.0_drop_qt4 branch 2 times, most recently from 056a932 to ac44038 Compare January 3, 2026 01:48
@MHendricks MHendricks marked this pull request as draft January 3, 2026 03:04
@MHendricks MHendricks force-pushed the mikeh/2.0_drop_qt4 branch 2 times, most recently from 674037f to a99d9fb Compare January 9, 2026 20:01
@MHendricks MHendricks force-pushed the mikeh/2.0_drop_qt4 branch 2 times, most recently from 0a26ada to 2d4f021 Compare January 11, 2026 05:35
Excluding required python 2 specific fixes
Leaving Python 3 only fixes for now
Prevent json parsing errors caused by printing when printing json
Cy2020 uses python 3.7 and Qt 5.13.
Correct Cy2021 test to use python 3.7

Improve py 3.7 PyQt5-sip workaround in tox. This prevents needing to have
visual studio installed to compile sdist by forcing it to use versions
providing pre-built wheels.
On linux these require the pulse audio libraries.
Sorts PySide before PyQt and Qt 6 before Qt 5.

Also Remove QIntList from membership report. It will not be common for
the 2.0 versions of Qt.py because it is not available in PySide2, PyQt5
or PyQt6. It's also adding a lot of visual clutter being present in ~50
modules in PySide6.
Uses the common_members.json generated list

Update membership.py to exclude platform specific members
This includes a workaround for python 3.7 and PySide2 in python 3.9.
Update github actions for artifact upload/download
This enables mapping QAction to the QtGui for the PySide6 reference, but
still add it to QtWidgets for backwards compatibility.
Adds support for adding `Qt.QtOpenGl` and other modules. These modules
don't actually have any common members because the different bindings used
unique module names. For example in Qt6 all QtOpenGL functions are stored
under QtOpenGL, but in PySide2 they are stored under QtGui and QtOpenGLFunctions,
and PyQt5 is ... complex.

Also moves most of the extras passed to _setup into the `__extras__` key
of `_misplaced_members[binding]`. This allows QtSiteConfig to customize them.

Remove Qt 5.11 legacy support for PyQt5 sip import.

QtWidgets.QFileSystemModel is now mapped to all misplaced bindings and tested.
This shows how to use QtSiteConfig to add this module as well as modifying
the new `__extras__` misplaced member feature.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v2.0 To be implemented in the 2.0 release of Qt.py

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant