Upgrade the project’s GUI framework from PyQt5 to the latest version, PyQt6.
Why we need the feature
Updating to PyQt6 will allow the project to leverage the latest features, performance improvements, and security enhancements. It ensures continued support and compatibility with modern Python versions and other dependencies, providing a better development experience and end-user interface.
How to implement and why
Update Dependencies:
Modify requirements.txt and requirements.pytorch.txt to replace PyQt5 with PyQt6.
Refactor Codebase:
Update all import statements from PyQt5 to PyQt6.
Address any deprecated modules or functions by referring to the PyQt6 migration guide.
Adjust any syntax changes or API differences introduced in PyQt6.
Update UI Components:
Review and update UI components to ensure compatibility with PyQt6’s changes.
Test custom widgets and ensure they function correctly with the new version.
Testing:
Run the full test suite to identify and fix any issues arising from the upgrade.
Perform manual testing of the user interface to ensure all features work as expected.
Documentation:
Update the README.md and any relevant documentation to reflect the upgrade to PyQt6.
Provide guidelines for contributors on the changes made and how to work with PyQt6.
This step-by-step implementation ensures a smooth transition to PyQt6, maintaining project stability while adopting the latest framework enhancements.
About backward compatibility
Migrating to PyQt6 introduces significant API changes that are not backward compatible with PyQt5. Therefore, maintaining backward compatibility with PyQt5 is not feasible. It is recommended to communicate this change clearly to all stakeholders and ensure that all dependent systems and contributors update their environments accordingly.
Resolves #42
What is the feature
Upgrade the project’s GUI framework from PyQt5 to the latest version, PyQt6.
Why we need the feature
Updating to PyQt6 will allow the project to leverage the latest features, performance improvements, and security enhancements. It ensures continued support and compatibility with modern Python versions and other dependencies, providing a better development experience and end-user interface.
How to implement and why
Update Dependencies:
requirements.txt
andrequirements.pytorch.txt
to replacePyQt5
withPyQt6
.Refactor Codebase:
PyQt5
toPyQt6
.Update UI Components:
Testing:
Documentation:
README.md
and any relevant documentation to reflect the upgrade to PyQt6.This step-by-step implementation ensures a smooth transition to PyQt6, maintaining project stability while adopting the latest framework enhancements.
About backward compatibility
Migrating to PyQt6 introduces significant API changes that are not backward compatible with PyQt5. Therefore, maintaining backward compatibility with PyQt5 is not feasible. It is recommended to communicate this change clearly to all stakeholders and ensure that all dependent systems and contributors update their environments accordingly.
Test these changes locally