Skip to content

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
41 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>
@mergify
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 2 commits April 9, 2025 22:41
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
Copy link
Contributor

@caguero caguero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably unrelated but I tried to load the minimal_scene plugin from the Gazebo plugin menu. I correctly saw the message that only one 3D scene plugin is supported at a time. When I tried to close the panel of that plugin, I got a crash.

Copy link
Contributor

@caguero caguero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very minor: The Publisher plugin shows the message type cropped for me.
Screenshot from 2025-04-17 18-05-09

Copy link
Contributor

@caguero caguero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just checking: When running the gz_components example this is what I got:

Screenshot from 2025-04-17 18-21-06

Is the style correct?

Copy link
Contributor

@caguero caguero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few minor comments/questions. Other than that I was able to load all of the plugins and examples 🎈 .

iche033 added 2 commits April 17, 2025 20:28
Signed-off-by: Ian Chen <ichen@openrobotics.org>
Signed-off-by: Ian Chen <ichen@openrobotics.org>
@iche033
Copy link
Contributor Author

iche033 commented Apr 17, 2025

Probably unrelated but I tried to load the minimal_scene plugin from the Gazebo plugin menu. I correctly saw the message that only one 3D scene plugin is supported at a time. When I tried to close the panel of that plugin, I got a crash.

Fixed in 8d7e045. Noticed that this also happens on Ionic so will backport the fix as well.

@iche033
Copy link
Contributor Author

iche033 commented Apr 17, 2025

Very minor: The Publisher plugin shows the message type cropped for me. Screenshot from 2025-04-17 18-05-09

Updated layout in 43a4763. Now it looks like this:

publisher_layout

will also backport to other release branches

@iche033
Copy link
Contributor Author

iche033 commented Apr 17, 2025

Just checking: When running the gz_components example this is what I got:

Screenshot from 2025-04-17 18-21-06

Is the style correct?

I believe that's on purpose. It shows an integer spinbox with default width, and a double spinbox with width explicitly set to 300

Signed-off-by: Ian Chen <ichen@openrobotics.org>
@iche033
Copy link
Contributor Author

iche033 commented Apr 18, 2025

testing with updated gz-gui homebrew formula that uses Qt6: https://build.osrfoundation.org/job/gz_gui-ci-pr_any-homebrew-amd64/218/

Build Status

@iche033
Copy link
Contributor Author

iche033 commented Apr 18, 2025

testing with updated gz-gui homebrew formula that uses Qt6: https://build.osrfoundation.org/job/gz_gui-ci-pr_any-homebrew-amd64/218/

Build Status

homebrew CI is green, merging!

@iche033 iche033 merged commit 1ff6eba into main Apr 18, 2025
11 of 12 checks passed
@iche033 iche033 deleted the iche033/qt6 branch April 18, 2025 22:44
@github-project-automation github-project-automation bot moved this from In review to Done in Core development Apr 18, 2025
@azeey azeey mentioned this pull request Aug 25, 2025
14 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🪵 jetty Gazebo Jetty

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants