Skip to content

User Interface Design

The main pattern for UI design in QGC is a UI page written in QML, many times communicating with a custom "Controller" written in C++. This follows a somewhat hacked variant of the MVC design pattern.

The QML code binds to information associated with the system through the following mechanisms:

  • The custom controller
  • The global QGroundControl object which provides access to things like the active Vehicle
  • The FactSystem which provides access to parameters and in some cases custom Facts.

Note: Due to the complexity of the QML used in QGC as well as it's reliance on communication with C++ objects to drive the ui it is not possible to use the QML Designer provided by Qt to edit QML.