Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pyside6 #57

Merged
merged 5 commits into from
Mar 12, 2025
Merged

Pyside6 #57

merged 5 commits into from
Mar 12, 2025

Conversation

spyoungtech
Copy link
Owner

Migrate from PySide2 (which only supports up to Python 3.10) to PySide6, which supports Python 3.9-3.13

Porting guide

So far, I've just changed the imports which allows simple applications to run. I will need to read the porting guide and review the FreeSimpleGUIQt code to identify any other possible required changes.

Relates to #56 #13

@spyoungtech
Copy link
Owner Author

Since PySide6 doesn't support Python3.8 or older, we should probably also add a python version constraint onto the next version of FreeSimpleGUIQt so that users of 3.8 and older will get the older version using PySide2.

@spyoungtech spyoungtech mentioned this pull request Mar 11, 2025
@spyoungtech
Copy link
Owner Author

As much as I reasonably could without holding this up beyond the next release, I checked the porting guide for usages of deprecated/changed interfaces and couldn't find anything actionable beyond the import changes. The demo programs all seem to work. Some warnings silently-passed errors are present in some demos, but these are also present in the PySide2 version (e.g., Unknown property origin) It's still possible something else has been missed.

Because users may be interfacing with FreeSimpleGUIQt in ways that use PySide2 explicitly, this will still be a major version change.

The foregoing notwithstanding, because Python 3.8 is EOL, per the Python version support guidance established in FreeSimpleGUI 5.1.0, we won't consider side-by-side support for PySide2 and PySide6 at this time. Though, unrelated fixes may be backported to 1.x on a case-by-case bases.

@spyoungtech spyoungtech marked this pull request as ready for review March 12, 2025 02:21
@spyoungtech spyoungtech merged commit 153fae1 into main Mar 12, 2025
1 check passed
@idanmiara
Copy link

idanmiara commented Mar 26, 2025

Hi,
Thanks for continuing this project!
Some 2+ years ago I migrated PySimpleGUI to work with both PySide2 and PySide6 as I needed to support some app that was made both for Win32+Win64 (PySide6 is available only for Win64).
Supporting both backends was relatively easy, but not sure if it will actually makes sense to continue supporting it for Win32 users.
I can see that I made some other small required changes besides the imports to make it work also with PySide6, see if it makes sense to you.
idanmiara/PySimpleGUI@25b71a0

@spyoungtech
Copy link
Owner Author

spyoungtech commented Mar 27, 2025

Hmm. I'm not sure how common a case this really is. Windows 32bit builds are largely a thing of the past for modern builds of Windows 10 and are completely gone in Windows 11. Windows 10 completely goes EOL in October of this year. For those reasons and those previously stated, at this point, I still don't think there's a compelling reason to support both versions.

Ultimately, the maintainability takes priority here. It's also lot simpler for other packages in the ecosystem to play nice with each other when there's just one version of Pyside to consider at a time. Consider, for example, someone wanting to extend FreeSimpleGUI using additional Pyside6 features -- if we took the approach to support both versions, those packages may, potentially surprisingly, not work if a user happens to have pyside2 installed and it makes debugging issues more involved.

In the odd case users who find themselves needing this support can still use the previous versions that support pyside2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants