Skip to content

Migrate to Qt6 #666

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

Open
wants to merge 25 commits into
base: main
Choose a base branch
from
Open

Migrate to Qt6 #666

wants to merge 25 commits into from

Conversation

iche033
Copy link
Contributor

@iche033 iche033 commented Mar 25, 2025

🎉 New feature

Built on top of #657 (and replaces that PR)

Related PR in gz-sim: gazebosim/gz-sim#2832

Summary

See PR description in #657. Apart from updating CMake calls and QML syntax to Qt6, one important change to highlight is:

plugin's name is prepended with an underscore (_) since properties that start with an uppercase letter are not allowed in Qt6

This resulted in changes in almost all the QML files in our GUI plugins. In order to call C++ functions from QML, the syntax is now _ClassName.Function() instead of ClassName.Function().

All TODOs mentioned in that PR has been addressed

CI status

Depends on:

Please see #673 that test these changes using custom CI branches. All checks are now green.

Plugins / Examples Status

I tested all gui plugins and examples in gz-gui (on ubuntu) to make sure they work in Qt6.

Here are their statuses:

Plugins

  • camera_fps
  • camera_tracking
  • camera_tracking_config
  • grid_config
  • image_display
  • interactive_view_control
  • key_publisher
  • marker_manager
  • minimal_scene
  • navsat_map (macOS only, needs Qt Location)
  • plotting
  • point_cloud
  • publisher
  • screenshot
  • shutdown_button
  • tape_measure
  • teleop
  • topic_echo
  • topic_viewer
  • transport_scene_manager
  • world_control
  • world_stats

Examples

standalone:

  • custom_drawer
  • dialogs
  • marker
  • point_cloud
  • scene_provider
  • start_dialog
  • window

plugin:

  • custom_context_menu
  • dialog_from_plugin
  • gz_components
  • hello_plugin
  • multiple_qml

Checklist

  • Signed all commits for DCO
  • Added tests
  • Added example and/or tutorial
  • Updated documentation (as needed)
  • Updated migration guide (as needed)
  • Consider updating Python bindings (if the library has them)
  • codecheck passed (See contributing)
  • All tests passed (See test coverage)
  • While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Before this fix, if the value property has a binding instead of a value,
any modification from the GUI (e.g. hitting the up arrow on the spin
box) would not actually change the displayed value because it is
immediately reset back to the value set by the binding. This is the case
in the `GzPose` module and the effect can be easily be seen in the
`GridConfig` plugin. To test, run:

`gz gui -c examples/config/grid_config.config`

You will see that, before this change, modifying the x,y,z,roll,pitch,
yaw values actually changes the grid configuration, but the updated values are
not displayed in the spinbox.

Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
@iche033 iche033 requested a review from jennuine as a code owner March 25, 2025 21:06
@iche033 iche033 mentioned this pull request Mar 25, 2025
40 tasks
@iche033 iche033 marked this pull request as draft March 25, 2025 22:12
…dings

Signed-off-by: Ian Chen <ichen@openrobotics.org>
iche033 added 3 commits March 29, 2025 01:40
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
@iche033 iche033 changed the base branch from azeey/qt6_simple to main April 3, 2025 01:34
iche033 added 4 commits April 3, 2025 01:35
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
iche033 added 6 commits April 4, 2025 18:24
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Copy link

mergify bot commented Apr 8, 2025

⚠️ The sha of the head commit of this PR conflicts with #673. Mergify cannot evaluate rules on this PR. ⚠️

iche033 added 4 commits April 8, 2025 23:06
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
@iche033 iche033 changed the title More Qt6 changes Migrate to Qt6 Apr 9, 2025
@iche033 iche033 marked this pull request as ready for review April 9, 2025 23:13
@iche033 iche033 requested a review from caguero April 9, 2025 23:13
@iche033 iche033 added the 🪵 jetty Gazebo Jetty label Apr 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🪵 jetty Gazebo Jetty
Projects
Status: Inbox
Development

Successfully merging this pull request may close these issues.

2 participants