This developer guide is the best source for information if you want to build, modify or extend QGroundControl (QGC). It shows how to obtain and build the source code, explains how QGC works, and provides guidelines for contributing code to the project.
This guide is for developers! To learn how to use QGroundControl, see the User Guide.
This guide is an active work in progress - information should be correct, but may not be complete! If you find that it is missing helpful information (or errors) please raise an issue.
QGC is designed to provide a single codebase that can run across multiple OS platforms as well as multiple device sizes and styles.
The QGC user interface is implemented using Qt QML. QML provides for hardware acceleration which is a key feature on lower powered devices such as tablets or phones. QML also provides features which allows us to more easily create a single user interface which can adapt itself to differing screen sizes and resolution.
The QGC UI targets itself more towards a tablet+touch style of UI than a desktop mouse-based UI. This make a single UI easier to create since tablet style UI also tends to work fine on desktop/laptops.
QGroundControl source code is dual-licensed under Apache 2.0 and GPLv3.