Skip to content

PyQt5, PyQt6, PySide6 Shim (Switch between different Python bindings for Qt versions)#5885

Merged
jonoomph merged 71 commits intodevelopfrom
qt6-support
Apr 17, 2026
Merged

PyQt5, PyQt6, PySide6 Shim (Switch between different Python bindings for Qt versions)#5885
jonoomph merged 71 commits intodevelopfrom
qt6-support

Conversation

@jonoomph
Copy link
Copy Markdown
Member

@jonoomph jonoomph commented Dec 18, 2025

Related to OpenShot/libopenshot#1027

openshot-qt runtime

  • openshot-qt uses the env var OPENSHOT_QT_API.
  • Values:
    • auto: try bindings in order and use the first one that imports
    • pyqt6: requires libopenshot to use Qt6
    • pyside6: requires libopenshot to use Qt6
    • pyqt5
  • In auto mode, it tries: pyqt6, then pyside6, then pyqt5.

libopenshot build-time

  • libopenshot uses the CMake cache variable -DUSE_QT6.
  • Values:
    • AUTO: prefer Qt6 if found, otherwise fall back to Qt5
    • ON: force Qt6
    • OFF: force Qt5
  • After that, CMake sets QT_VERSION_MAJOR to 6 or 5 and links Qt${QT_VERSION_MAJOR}.

…nd. Also, adding a new QT version shim, although we aren't using it quite yet.
@jonoomph
Copy link
Copy Markdown
Member Author

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 2, 2026

Merge conflicts have been detected on this PR, please resolve.

@github-actions github-actions Bot added the conflicts A PR with unresolved merge conflicts label Feb 2, 2026
# Conflicts:
#	src/windows/add_to_timeline.py
#	src/windows/animated_title.py
#	src/windows/export.py
#	src/windows/main_window.py
#	src/windows/models/emoji_model.py
#	src/windows/models/files_model.py
#	src/windows/models/titles_model.py
#	src/windows/models/transition_model.py
#	src/windows/profile_edit.py
#	src/windows/views/effects_listview.py
#	src/windows/views/emojis_listview.py
#	src/windows/views/files_listview.py
#	src/windows/views/properties_tableview.py
#	src/windows/views/timeline_backend/qwidget/track.py
#	src/windows/views/titles_listview.py
#	src/windows/views/transitions_listview.py
…g on a few models (transitions, effects, files)
…r a consistent look on all widget libraries).
…ing QPointF correctly, ending QPainter correctly)
…Thumbnail view) - since they are single selection only lists
…due to large Arm64 memory addresses (PySide6 forces int() which breaks the pointers in an overflow error)
@philocalyst
Copy link
Copy Markdown

Or the addition of a compile-time flag? Just makes it impossible to package for Nix as the old engine is marked as vulnerable for 24 CVEs :(

jonoomph added 14 commits April 10, 2026 20:45
…ltering on our Credits dialog (developers and supporters)
…t preset() image flow. This works a bit differently than our desktop versions.
…- required some heavy refactoring in qt_api, to hide some of the ugly android implementation details.
@jonoomph
Copy link
Copy Markdown
Member Author

We currently support 3 timeline backends: QtWebkit, QtWebEngine, and a custom qwidget built one. The webview backends will soon be removed - as they are only here for legacy reasons now. I wanted to keep them in the 3.5.x releases - but I plan on removing them from develop branch very soon.

jonoomph added 12 commits April 14, 2026 17:25
…larity -> Speech. Once is a model-based denoiser, and one is a upsampler model - both neural networks, both fast, and both great.
…aths are treated as Android URIs. Normal local paths, including Windows drive-letter paths, now resolve to the project’s asset folder again. I also added

  focused tests for both Windows local paths and content:// URIs.
…al scroll position of the timeline into account, and pasting clips in the wrong track (not the track selected)
…ine did not extend the project's duration to include the newly pasted clips.
…track when vertical scrolling is involved on the timeline.
@jonoomph jonoomph merged commit 6674926 into develop Apr 17, 2026
9 checks passed
@jonoomph jonoomph deleted the qt6-support branch April 17, 2026 03:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflicts A PR with unresolved merge conflicts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants