gazebosim/gz-gui

Tutorial with guidelines and tips for creating new widgets

Open

#339 opened on Dec 20, 2021

 (0 comments) (1 reaction) (0 assignees)C++ (68 forks)auto 404
OOBE 📦✨documentationenhancementhelp wanted

Repository metrics

Stars
 (103 stars)
PR merge metrics
 (PR metrics pending)

Description

For the GUI to have a uniform look and feel, it's important that developers use the same styling when creating new widgets. Ignition uses material as a design system, so we can refer to that documentation when looking for guidelines for the visual look of the application. The part that needs documenting is how to apply that when developing Ignition.

Desired behavior

When a new developer doesn't know what QtQuick controls to use, or how to position widgets on a plugin, they can look into that tutorial as a reference.

Alternatives considered

We could have more examples.

Implementation suggestion

Some of the things that I think should be documented:

  • Sharing properties between QML and C++
  • Adding images to a plugin
  • Using material colors instead of custom hardcoded colors
  • Creating responsive layouts that adapt to the window size
  • Leveraging unicode symbols instead of creating new icons
  • Using appropriate widgets according to data type (i.e. spins for numbers, text fields for strings...)
  • Always displaying units
  • Using custom Ignition widgets when needed (i.e. IgnSpinBox instead of SpinBox)

Contributor guide