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

Migrate Qt5 to Qt6 #586

Open
2 of 14 tasks
mjcarroll opened this issue Oct 10, 2023 · 6 comments
Open
2 of 14 tasks

Migrate Qt5 to Qt6 #586

mjcarroll opened this issue Oct 10, 2023 · 6 comments
Assignees

Comments

@mjcarroll
Copy link
Contributor

mjcarroll commented Oct 10, 2023

Tracking issue for tasks required to migrate from Qt5 to Qt6.


Environment: Ubuntu Noble + Gazebo Ionic + Qt6 + #596 + gazebosim/gz-sim#2305
Initial test: gz sim minimal_scene.sdf

Goals

  1. Make Gz Ionic work with Qt5/Qt6
  2. Backport Qt5 changes to Harmonic

Tasks

  • Update our gz gui CI action to use Ubuntu Noble.
  • Forward port gz-qui8 to main.

Ideas

  • Load our qml codebase into Qt Creator / GammaRay to detect issues.

Current list of issues:

  • GzSpinBox. Replace it with a textbox widget.
  • TreeViewStyle not available in Qt6 qml .
  • Review if QtQuick.Controls 1.x is used and identify the replacement if any.
  • [GUI] [Err] [Gui.cc:326] Failed to instantiate custom drawer, drawer will be empty.
  • (fixed) Confirm if there's a segfault when running gz sim shapes.sdf or gz sim minimal_scene.sdf.
  • Propagate the changes made in gz-gui to compile plugins as modules.
  • 3D scene window not working. Minimal example to load a 3D scene:
    * https://doc.qt.io/qt-6/debug.html
    * There's a useful example in gz-rendering: examples/simple_demo_qml .
    * 1st test: Load MinimalScene only and create a <scene> element within <world> to change the background color.
    * 2nd test: Create an SDF with MinimalScene (gz-gui) and SceneManager (gz-sim).
@mjcarroll mjcarroll self-assigned this Oct 10, 2023
@mjcarroll mjcarroll moved this from Inbox to In progress in Core development Oct 13, 2023
@mjcarroll
Copy link
Contributor Author

Compatible changes between qt5+qt6: #598

@mjcarroll
Copy link
Contributor Author

Clazy checks: #584

@mjcarroll
Copy link
Contributor Author

Bulk of the migrations for gui: #596

@azeey
Copy link
Contributor

azeey commented Jul 12, 2024

Here's the list of qt6 packages I needed to install:

  • qml6-module-qt-labs-folderlistmodel
  • qml6-module-qt-labs-platform
  • qml6-module-qt-labs-settings
  • qml6-module-qtcharts
  • qml6-module-qtpositioning
  • qml6-module-qtqml-models
  • qml6-module-qtquick-controls
  • qml6-module-qtquick-dialogs
  • qml6-module-qtquick-layouts
  • qml6-module-qtquick-templates
  • qml6-module-qtquick-window
  • qml6-module-qtquick
  • qt6-base-dev
  • qt6-declarative-dev
  • libqt6quickcontrols2-6
  • qml6-module-qtcore
  • qml6-module-qtqml-workerscript
  • qml6-module-qt5compat-graphicaleffects
  • libqt6svg6

@azeey azeey mentioned this issue Jul 16, 2024
@azeey
Copy link
Contributor

azeey commented Jul 16, 2024

I've added a fix in the gz-sim branch gazebosim/gz-sim@a2652ac which should help with the communication between the server and GUI ECMs. With that, I see glimmers of hope :)
Screen recording 2024-07-16 14.18.43.webm

@caguero
Copy link
Contributor

caguero commented Jul 17, 2024

I was able to visualize the 3D screen even without your changes. It was hidden at the very left covered by other collapsed window plugins.

Screenshot from 2024-07-17 16-51-50

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

No branches or pull requests

3 participants