# QGC source code explained

**URL:** <https://discuss.px4.io/t/qgc-source-code-explained/7467>\
**Category:** Development\
**Created:** [August 11, 2018, 7:24am UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467 "2018-08-11T07:24:39Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![oliver](https://discuss.px4.io/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@oliver](https://discuss.px4.io/u/oliver)\
**Post date:** [August 11, 2018, 7:24am UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/1 "2018-08-11T07:24:39Z")

</div>

Hi everyone.  
I am trying t go deep inside the source code of QGC, so i can later build my own application based on some features of the software that i will be choosing based on my needs.  
I would like to ask you where can i find i full guide going through the code, in a way that it makes the code clear to me when reading it.  
And if there is any advice you could give me, it will be much appreciated.  
Thank you.

---

<div class="post-metadata">

**Author:** ![DonLakeFlyer](https://discuss.px4.io/user_avatar/discuss.px4.io/donlakeflyer/32/3036_2.png) [@DonLakeFlyer](https://discuss.px4.io/u/DonLakeFlyer)\
**Post date:** [August 11, 2018, 7:35pm UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/2 "2018-08-11T19:35:12Z")

</div>

[https://dev.qgroundcontrol.com/en/](https://dev.qgroundcontrol.com/en/)

---

<div class="post-metadata">

**Author:** ![oliver](https://discuss.px4.io/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@oliver](https://discuss.px4.io/u/oliver)\
**Post date:** [August 13, 2018, 5:23pm UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/3 "2018-08-13T17:23:01Z")

</div>

Hi, and thank you for your reply…  
I will go through the guide

---

<div class="post-metadata">

**Author:** ![DonLakeFlyer](https://discuss.px4.io/user_avatar/discuss.px4.io/donlakeflyer/32/3036_2.png) [@DonLakeFlyer](https://discuss.px4.io/u/DonLakeFlyer)\
**Post date:** [August 13, 2018, 6:57pm UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/4 "2018-08-13T18:57:22Z")

</div>

Not a ton of info there. But better than nothing

---

<div class="post-metadata">

**Author:** ![PX4\_Gandalf](https://discuss.px4.io/letter_avatar_proxy/v4/letter/p/ccd318/32.png) [@PX4\_Gandalf](https://discuss.px4.io/u/PX4_Gandalf)\
**Post date:** [November 15, 2018, 7:40pm UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/5 "2018-11-15T19:40:44Z")

</div>

Hi everyone,

Does someone know how RTK streaming is implemented in QGroundControl? I could not find any reference to that in the development guide.

I was wondering if there was fixed base station implemented or if it is possible to add that in QGroundControl. This will help me attain the fixed RTK lock soon even if I have to restart QGroundControl.

---

<div class="post-metadata">

**Author:** ![DonLakeFlyer](https://discuss.px4.io/user_avatar/discuss.px4.io/donlakeflyer/32/3036_2.png) [@DonLakeFlyer](https://discuss.px4.io/u/DonLakeFlyer)\
**Post date:** [November 16, 2018, 6:10pm UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/6 "2018-11-16T18:10:42Z")

</div>

QGC repo has changelog for new features/fixes going in: [https://github.com/mavlink/qgroundcontrol/blob/master/ChangeLog.md](https://github.com/mavlink/qgroundcontrol/blob/master/ChangeLog.md).

### 3.5.0 - Daily Build

- Add support for specifying fixed RTK based station location in Settings/General.
- Added Airmap integration to QGC
- Added ESTIMATOR\_STATUS values to new estimatorStatus Vehicle FactGroup. These are now available to display in instrument panel.
- Added Chinese and Turkish localization and partial German localization.
- Make Distance to GCS available for display from instrument panel.
- Make Heading to Home available for display from instrument panel.
- Edit Position dialog available on polygon vertices.
- Fixed Wing Landing Pattern: Add stop photo/video support. Defaults to on such that doing an RTL will stop camera.
- Survey Planning: add mode that supports concave polygons
- Support loading polygons from SHP files

---

<div class="post-metadata">

**Author:** ![PX4\_Gandalf](https://discuss.px4.io/letter_avatar_proxy/v4/letter/p/ccd318/32.png) [@PX4\_Gandalf](https://discuss.px4.io/u/PX4_Gandalf)\
**Post date:** [November 29, 2018, 12:32am UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/7 "2018-11-29T00:32:35Z")

</div>

Hi @DonLakeFlyer,

That is so cool. Thank you.

Regards,

---

<div class="post-metadata">

**Author:** ![HammadT](https://discuss.px4.io/user_avatar/discuss.px4.io/hammadt/32/2751_2.png) [@HammadT](https://discuss.px4.io/u/HammadT)\
**Post date:** [November 30, 2018, 1:00am UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/8 "2018-11-30T01:00:35Z")

</div>

Hi Oliver @oliver ,  
I am also working on the souce to code to use it for my own purpose. I want to design a program using PX4 firmware in Pixhawk in order to made a quadrupled robot like boston dynamic LS3. I have just started now so i am at that stage where you are in August 11. So i just want to know did you get any relative solution that where to start from and how to make progress further in order to understand the code to edit and implement it on Pixhawk controller.  
I you got any solution do help me.  
Thank you.

---

<div class="post-metadata">

**Author:** ![oliver](https://discuss.px4.io/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@oliver](https://discuss.px4.io/u/oliver)\
**Post date:** [December 14, 2018, 9:58am UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/9 "2018-12-14T09:58:26Z")

</div>

Well after months of reading the code, i couldn’t find a method that could simplify the code, all i did is read the code and try to follow along the developer guide (it can help you to know where to start from) and do some debugging when i want to know a specific piece of code how it works…  
Generally what helps is to focus on a specific topic and follow along the code related to it , and as i said try reading the developer guide it gives helpful tips on how the coding is made…  
I encourage you to try first making a simple app to send/receive mavlink messages , and then go for bigger topics.  
I hope this will be of any help to you.

---

<div class="post-metadata">

**Author:** ![Hoan\_Bui](https://discuss.px4.io/user_avatar/discuss.px4.io/hoan_bui/32/19736_2.png) [@Hoan\_Bui](https://discuss.px4.io/u/Hoan_Bui)\
**Post date:** [June 23, 2025, 8:01am UTC](https://discuss.px4.io/t/qgc-source-code-explained/7467/10 "2025-06-23T08:01:57Z")

</div>

Hello Sir,

I am currently trying to customize the QGroundControl UI for Android. I want to redesign the entire interface with a more modern and touch-friendly look. I have looked through the developer documentation on the QGroundControl website, but to be honest, I am still quite confused and have no idea where to start. I have not yet figured out which version of Qt to use or where exactly to get the source code for a setup that works well with QGroundControl development on Android.

Any help or guidance would be greatly appreciated! Please reply if you read this comment, plsssss
