Update the project's GUI framework from PyQt5 to PyQt6.
Why we need the feature
Migrating to PyQt6 allows the project to leverage the latest features, performance improvements, and security updates provided by the newer version. PyQt6 also aligns with the latest Qt framework releases, ensuring better compatibility and future-proofing the application.
How to implement and why
Update Dependencies:
Modify requirements.txt and requirements.pytorch.txt to replace PyQt5 with PyQt6.
Codebase Changes:
Search and replace all PyQt5 imports with PyQt6 equivalents in the source files (e.g., in start.py, within the game_manager directory).
Update any deprecated methods or classes to align with PyQt6's API.
Refactor UI Components:
Adjust UI components and layouts as needed to comply with PyQt6's changes, ensuring consistent behavior and appearance.
Testing:
Perform comprehensive testing of the application to identify and fix any issues arising from the migration.
Update or write new unit and integration tests to cover changes.
Documentation:
Update the README.md and other relevant documentation in the doc directory to reflect the change to PyQt6.
Why this approach:
A step-by-step migration ensures that dependencies are correctly updated, codebase changes are systematically handled, and thorough testing maintains application stability during the transition.
About backward compatibility
Migrating from PyQt5 to PyQt6 introduces breaking changes that are not backward compatible. Users will need to update their environments to support PyQt6. It's important to communicate this change clearly in the documentation and, if necessary, provide instructions for migrating.
Resolves #20
What is the feature
Update the project's GUI framework from PyQt5 to PyQt6.
Why we need the feature
Migrating to PyQt6 allows the project to leverage the latest features, performance improvements, and security updates provided by the newer version. PyQt6 also aligns with the latest Qt framework releases, ensuring better compatibility and future-proofing the application.
How to implement and why
Update Dependencies:
requirements.txt
andrequirements.pytorch.txt
to replace PyQt5 with PyQt6.Codebase Changes:
start.py
, within thegame_manager
directory).Refactor UI Components:
Testing:
Documentation:
README.md
and other relevant documentation in thedoc
directory to reflect the change to PyQt6.Why this approach:
A step-by-step migration ensures that dependencies are correctly updated, codebase changes are systematically handled, and thorough testing maintains application stability during the transition.
About backward compatibility
Migrating from PyQt5 to PyQt6 introduces breaking changes that are not backward compatible. Users will need to update their environments to support PyQt6. It's important to communicate this change clearly in the documentation and, if necessary, provide instructions for migrating.
Test these changes locally