Skip to content

Qt6 official support #359

Description

@ThomasMalletCodra

Is your feature request related to a problem? Please describe.
The DataLab platform and the underlying PlotPyStack libraries (PythonQwt, guidata, PlotPy, SigimaX, DataLab) currently support Qt5 (PyQt5) as the primary, fully validated Qt binding. Qt6 bindings (PyQt6 and PySide6) are accessible through qtpy, but they are not yet officially supported across the whole stack: compatibility has been checked informally, on a best-effort basis, without systematic testing or a clear support statement for users and packagers.

Describe the solution you'd like
Officially support Qt6 across the whole DataLab + PlotPyStack ecosystem, for both Qt6 bindings exposed via qtpy:

  • PyQt6: compatibility is already close to complete across the stack; remaining gaps should be identified and fixed.
  • PySide6: not fully supported yet, especially at the DataLab level; this is considered a secondary priority compared to PyQt6.

Qt6 will become the default Qt version in releases.

This effort spans the following repositories:

  • PythonQwt
  • guidata
  • PlotPy
  • SigimaX
  • DataLab

Sigima is not expected to be impacted, since it is a headless computation library with no direct Qt dependency, but this should be double-checked as part of this effort.

Suggested scope of work:

  • Audit each repository for Qt6-specific issues (API differences between Qt5/Qt6, deprecated enums, signal/slot signature changes, etc.).
  • Fix remaining PyQt6 compatibility issues first (higher priority).
  • Fix PySide6 compatibility issues, focusing on DataLab where support is currently the weakest (lower priority).
  • Add or extend CI test matrices to run automated tests against PyQt6 and PySide6, in addition to the existing PyQt5 coverage.
  • Update documentation (installation instructions, supported bindings table) to reflect official Qt6 support once validated.

Additional context

  • Affected components: PythonQwt, guidata, PlotPy, SigimaX, DataLab (Sigima likely unaffected, to be confirmed).
  • Priority: PyQt6 support first, PySide6 support second (currently the least mature, particularly in DataLab).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions