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.
Information about contributing, including coding styles, testing and licenses can be found in Code Submissions.
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:
The QGroundControl mission planner is hosted under the governance of the Dronecode Project.