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.
Tip This guide is for developers! To learn how to use QGroundControl, see the User Guide.
Note 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.
Development questions can be raised in the QGroundControl Developer discuss category or in the QGroundControl Gitter channel.
Information about contributing, including coding styles, testing and licenses can be found in Code Submissions.
Tip We expect all contributors to adhere to the QGroundControl code of conduct. This code aims to foster an open and welcoming environment.
We use Crowdin to make it easier to manage translation for both QGroundControl and the documentation.
The translation projects (and join links) are listed below:
The PX4 Developer Guide contains additional information about the (common) docs/translation toolchain:
QGroundControl source code is dual-licensed under Apache 2.0 and GPLv3. For more information see: Licenses.
The QGroundControl mission planner is hosted under the governance of the Dronecode Project.