QT(5.15)之QGC(4.4)安装教程

news/2025/2/24 1:28:32

一、编译

下载需求:需要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,在右侧对有问号的进行汉化,在简体中文下面的输入框写入对应的汉化结果,然后点击上方的勾号,勾完后对应的问号就变成了勾号,然后点击上方的保存按钮。


http://www.niftyadmin.cn/n/5863903.html

相关文章

【多模态大模型】端侧语音大模型minicpm-o:手机上的 GPT-4o 级多模态大模型

MiniCPM-o ,它是一款 开源、轻量级 的多模态大语言模型,目标是在手机等资源受限的环境中实现 GPT-4o 级别的多模态能力! 1. MiniCPM-o:小身材,大能量! MiniCPM-o 的名字已经暗示了它的核心特点&#xff…

第4章 信息系统架构(五)

4.7 安全架构 安全保障以风险和策略为基础,在信息系统的整个生命周期中,安全保障应包括技术、管理、人员和工程过程的整体安全,以及相关组织机构的健全等。 4.7.1 安全威胁 常见的威胁有: 4.7.2 定义和范围 安全性体现在信息系…

【JavaEE进阶】图书管理系统 - 贰

目录 🌲前言 🎄设计数据库 🍃引⼊MyBatis和MySQL驱动依赖 🌳Model创建 🎍约定前后端交互接口 🍀服务器代码 🚩控制层 🚩业务层 🚩数据层 🌴前端代码…

【玩转 Postman 接口测试与开发2_020】(完结篇)DIY 实战:随书示例 API 项目本地部署保姆级搭建教程(含完整调试过程)

《API Testing and Development with Postman》最新第二版封面 文章目录 最新版《Postman 接口测试与开发实战》示例 API 项目本地部署保姆级搭建教程1 前言2 准备工作3 具体部署3.1 将项目 Fork 到自己名下3.2 创建虚拟环境并安装依赖3.3 初始运行与项目调试 4 示例项目的用法…

Java子类调用父类构造器的应用场景

在Java中,子类调用父类构造器的应用场景主要涉及到继承关系中的对象初始化。以下是几种常见的应用场景: 1. 初始化父类成员变量 当子类继承父类时,子类对象中包含父类的成员变量。为了确保这些父类成员变量被正确初始化,子类构造…

下拉框的数据置为危险的‘删除‘状态时弹窗确认

<el-form-item label"删除标志" prop"delFlag"><el-select v-model"form.delFlag" placeholder"请选择删除标志" change"handleDelFlagChange"><el-option v-for"dict in dict.type.sys_ice_del_flag&q…

大数据学习之PB级音乐数据中心数仓综合项目(1)-理论知识和项目需求、歌曲热度与歌手热度排行

一、理论知识和项目需求 1.课程介绍 2.数据库与ER建模_数据库三范式 3.数据库与ER建模_ER实体关系模型 4.数据库与维度建模_数据仓库(DATA WAREHOUSE) 5.数据库与维度建模_数据库与数据仓库区别 6.数据库与维度建模_数据仓库的发展历程 7.数据库与维度建模_维度建模 8.数据库与…

【落羽的落羽 数据结构篇】栈和队列

文章目录 一、栈1. 概念2. 栈操作2.1 定义栈结构2.2 栈的初始化2.3 入栈2.4 出栈2.5 取栈顶元素 3. 栈的使用实例 二、队列1. 概念2. 队列操作2.1 定义队列结构2.2 入队列2.3 出队列2.4 销毁队列 三、用队列实现栈四、用栈实现队列 一、栈 1. 概念 栈&#xff08;stack&#…