Build new UI for QGC


Has anyone tried to rebuild the User Interface of QGC? Like the customized UI for your own ROV using.

And do i have to use QT 5.7.1 to build QGC?


Best Regards


You can check QGroundControl Developers Guide, it has all necessary information to allow development in Unix and Windows. If any help is necessary, you can check the gitter channel.

1 Like

@chengchang2004 Yes, it has been done. Here is an example


Whoever did that must be some sort of genius.


Agree…this is a Good setup like it shuld be;))…but have No clue how to do;D

Hi, i see that there are couple changes on the QGC UI.

Is this UI designed for the BR2 with Underwater GPS module? Could you briefly introduce the new features to me?

Thank you very much!


This work was done by someone else. I only know about the picture. They are showing which stabilization is active in each mode as well as some things about relative/absolute position.

Hi Chang

I actually made those modifications to QGC for a client. Their primary purpose is to display data coming from an acoustic positioning system similar to the Waterlinked GPS system that Blue Robotics sells. This is for a custom ROV that uses the same Pixhawk+RaspberryPi brain as a BR2.

1 Like

Nice, well done!

I will try to make a similar one.


@rperkins Good evening, a little bit late for this question maybe but, I just started the qgc customized development and, well, it is a labyrinth of code. If you were able to implement that kind of changes into the UI, do you have any kind of tip for someone (me) totally new to this? note: I know nothing of front end development, and I think Qt Creator is very difficult to use for someone inexperienced. Do you know where to look for a more in-depth development of the qgc modules? Also, the developer guide of qgc is not that intuitive, since I’ve read it many times and still dont know where to start touching.

Hi Javier
I’m impressed that you’ve gotten as far as getting QT Creator going and had a look into the QGC code. I had a very patient tutor when I delved into this stuff and you are correct-- it is difficult! I think I can write up a reasonably short summary what you’ll need to know if you want to make some fairly simple UI modifications to QGC like I did. I’ll post back here when I have something ready.

Oof totally… I spent days trying to understand QtCreator and building the QGC code… I was able to work my way out mostly thanks to This Tutorial Video but even though, it is still very complex. And not even that, but you cannot see the ui objects through QtDesigner , so you dont know what are you looking at when you are in front of the code!!!

Anyway, now I am stuck and there arent many people who greatly modified QGC. Your custom UI might be a very good start point for changing little things that appear on screen. I know you cannot share code, but that short summary might be a great guide not only for me, but for the many people who enter this thread looking for an answer. Thanks!

QGC is not the friendliest tool to develop.

Try building the default Custom Build and check how that works. It has mostly aesthetic changes on top of QGC.

could this custom build not only add aesthetic changes but also add widgets like tables for monitorizing values, or controls to control something like a servo?

Yes, check custom firmware and autopilot examples.

Would be Nice if someone shared the result and let it be available for us normal People who dont understand this magic with codes :)… Its All greek to me:/

I am trying to find a simple customization setup (like maybe an extra pannel, or a joystick into the UI) but everything is very confusing. When you search in the web, there is no in-between: you can come across between absolute nothing, or full, top-notch QGC customized builds…

I tried a strategy, although I think its a little bit too much ambitious:

  • I cloned the repo of Domenico Patella explained in this ardupilot discussion where he enhanced QGC with a battery monitoring system, and changed the GUI to accomodate the new features.
  • Then, I used WinMerge to compare his project with the Stable_V4.0 of QGC, and see, code level, where he changed the code.

Of course, WinMerge says there are A LOT of changes between both versions, not only because probably those are different versions of QGC but also because his enhancements to the system are quite complex and add many new things apart from adding stuff to the screen.

Maybe I can apply this strategy to find the changes in a custom build with a very very simple enhancement, and see this way explicitly where can I start writing my own code. But again… I do not find any simple example, nor anything that can guide the process…

Did you check the custom build example that the documentation points ?

This one? Yeah, I mean, what do I do with it? thats the issue! whats the difference between that one (“master” branch) and this one (Stable V4.0 branch)?

The thing is: I dont know exactly what I am dealing with here. When I enable the “custom build” (changing the name of the directory from “custom example” to “custom”) I know the program builds itself differently, and the QGC that appears in QtCreator is different, but doing that doesnt mean that now I am able to change anything I want as I please, since I still dont know what I am lookin at. I still dont know where do I have to touch to make my own additions.