一、编译
下载需求:需要QT版本为5.15,QGC版本为4.4,必须使用MSVC编译器,不能用Mingw编译器。
1. 下载QGroundControl源码
QGroundControl 的源代码https://github.com/mavlink/qgroundcontrol。
官网:Getting Started with Source and Builds | QGC Guide (master)
当前示例release版本为4.4稳定版
推荐使用git下载源码。直接下载zip 文件不包含相应的子模块源代码。
git如果下载过程中失败,需要开梯子。。。。
①首先,克隆存储源码库,包括子模块:
git clone --recursive -j8 https://github.com/mavlink/qgroundcontrol.git -b Stable_V4.4
② 然后进入源码文件夹,使用下面git命令更新子模块
.git文件夹所在的路径 git submodule update --recursive
QGroundControl地面站 使用 Qt 作为其跨平台支持库。
每日构建指定Qt版本为6.6.3,稳定版为5.15.2。
2.下载完成使用Qt打开qgroundcontrol.pro文件进行编译,如果编译中报错:
需要修改\mavlink\qgroundcontrol\QGCCommon.pri文件。
将 QMAKE_CXXFLAGS_WARN_ON += /WX /W3 \
改完 QMAKE_CXXFLAGS_WARN_ON += -/WX /W3 \
然后在编译,此时编译会报错,然后在改成原来的QMAKE_CXXFLAGS_WARN_ON += /WX /W3 \继续进行编译即可。。。。或者不改继续编译也可以成功。。。编译成功结果见下图。
二、二次开发
QGC的主界面好像是:C:\Users\lxj\Desktop\qground_control\mavlink\qgroundcontrol\src\ui\MainRootWindow.qml
1.修改标题名称
我这里为了方便就直接复制本地环境的路径了,大家可以参考自己的路径,具体路径为以下加粗的目录。
C:\Users\lxj\Desktop\qground_control\mavlink\qgroundcontrol\src\QGCApplication.cc文件夹中。修改280行。
需要加一个宏定义:
#define qtstr(s) QString::fromLocal8Bit(s)
2.修改图标
添加图片资源
新建一个文件夹img_add,放入需要添加的图片资源
C:\Users\lxj\Desktop\qground_control\mavlink\qgroundcontrol\qgcimages.qrc在这个文件中导入自己要添加的图标。
然后就可以在程序中使用添加的图片了,注意程序中填写的是图片的别名。
修改主工具栏图标:
修改MainToolBar.qml,在下图位置修改图片资源的路径为自己添加的资源(以软件设置按钮为例):
C:\Users\lxj\Desktop\qground_control\mavlink\qgroundcontrol\src\ui\toolbar\MainToolBar.qml
在下图位置修改图片资源的路径为自己添加的资源(以软件设置按钮为例):
icon.source: "/qmlimages/软件图标.png"
结果如下:
修改软件设置图标:(似乎没改变,后续再看)
C:\Users\lxj\Desktop\qground_control\mavlink\qgroundcontrol\src\ui\MainRootWindow.qml
需要修改两个地方:
showTool(qsTr("Application Settings"), "AppSettings.qml", "/qmlimages/软件图标.png")
imageResource: "/qmlimages/软件图标.png"
注意这个文件中有多个SubMenuButton注意看id是否正确。。。
3.汉化
软件路径:D:\C++\Qt5.15.2\5.15.2\msvc2019_64\bin\linguist.exe
打开后,在左侧会显示总个数和已汉化的个数,点击没有全部汉化的Context,在右侧对有问号的进行汉化,在简体中文下面的输入框写入对应的汉化结果,然后点击上方的勾号,勾完后对应的问号就变成了勾号,然后点击上方的保存按钮。