QGC中手把手教你添加qmldir模块

  • 1. 新建qmldir文件
  • 2. 新建QML文件
  • 3. qrc中添加qmldir和QML文件
  • 4. 修改qmldir和QML文件
  • 5. 如何使用
  • 6. pro文件导入QML模块的路径
  • 7. 安装模块路径

所有的热爱都要不遗余力,真正喜欢它便给它更高的优先级,和更多的时间吧!

关于QGC地面站其它文章请点击这里:     QGC地面站

如果有帮助到您,还请点赞+关注哦,感谢感谢!!!


姊妹篇:

Qt QML 模块化管理(三)—— qmldir的化繁为简

QT QML 模块化管理(二)——前缀(Prefix)和别名管理

QT QML 模块化管理(一)——添加工程组(文件组)

QGC地面站——Release下模块未安装(module “QGroundControl.xxx“ is not installed)


1. 新建qmldir文件

打开源码文件夹,直接复制FlightDisplay文件夹改名为QmldirTest,里面只有一个qmldir文件:

2. 新建QML文件

src下新建QmldirTest文件夹,然后在该文件夹下新增 “TestQml1.qml” 文件,如下:

    要添加在 /qml的前缀下:

3. qrc中添加qmldir和QML文件

具体步骤如下,其一添加上面1 2中的qmldir和qml文件,其二再修改别名使得都在QmldirTest下,其三记得“ctrl + s” 保存qgroundcontrol.qrc,再左侧就会自动出现在QmldirTest同一文件下。

4. 修改qmldir和QML文件

QmldirTest\qmldir 中:

Module QGroundControl.QmlTest  #声明模块的模块标识符,必须与模块的安装路径匹配,必须是文件的第一行#依次为类型名称 | 类型的模块版本 | QML文件名(这里还有可选参数[singleton]用于声明单例类型)
TestQml1              1.0        TestQml1.qml

QmldirTest\TestQml1.qml 中:

import QtQuick 2.0
import QtQuick.Controls 2.5Rectangle {anchors.top:                parent.topanchors.topMargin:          20anchors.horizontalCenter:   parent.horizontalCenterwidth:                      labeltest.implicitWidth * 1.2height:                     labeltest.implicitHeight * 1.5color:                      "green"radius:                     height / 2border.width:               2border.color:               "black"Label {id:                     labeltestanchors.centerIn:       parenttext:                   "qmldir 模块添加测试!"color:                  "white"font.bold:              truefont.pointSize:         14}
}

5. 如何使用

FlightDisplayView.qml 中导入模块:

最后一行调用 TestQml1

代码:

//qgroundcontrol\src\FlightDisplay\FlightDisplayView.qml:
import QGroundControl.QmldirTest    1.0
...// 最后一行调用TestQml1
TestQml1 {}

如下,执行后TestQml1被执行

当然中间也还有两个步骤是qmldir模块的关键,且看第6和第7点,QGC已经写了,我们只需知道在哪就好。

6. pro文件导入QML模块的路径

(无需操作)

如下, qgroundcontrol.pro 中指定 QML_IMPORT_PATH 的路径为 $$PWD/src/QmlControls

即:

每个文件夹下只有一个qmldir文件

7. 安装模块路径

(无需操作)

如下,执行 pEngine->addImportPath(“qrc:/qml”); 即可。

绿色框,为QGC加载整个QML界面的根文件,可点击这里进一步了解:QGC源码分析——UI界面的启动流程(从mian.cc到五大视图) ,安装模块一定需要在根文件启动前执行。

好了,到此为止,你也尝试一下吧~

如果在Release下遇到了模块未安装的bug,可以看看这里:QGC地面站——Release下模块未安装(module “QGroundControl.xxx“ is not installed)


关于QGC地面站其它文章请点击这里:     QGC地面站

如果有帮助到您,还请点赞+关注哦,感谢感谢!!!


姊妹篇:

Qt QML 模块化管理(三)—— qmldir的化繁为简

QT QML 模块化管理(二)——前缀(Prefix)和别名管理

QT QML 模块化管理(一)——添加工程组(文件组)

QGC地面站——Release下模块未安装(module “QGroundControl.xxx“ is not installed)

QGC地面站手把手教你改——如何添加qmldir模块文件相关推荐

  1. QGC地面站手把手教你改——如何添加跟随面板显示关键参数

    如何添加跟随面板显示关键参数 一. 要实现的目标 二. 代码分析与修改 1. 飞行地图文件的分析与修改 2. 代理文件中数据源 3. 代理文件中显示形式 所有的热爱都要不遗余力,真正喜欢它便给它更高的 ...

  2. QGC(QGroundControl)地面站手把手教你改——高德地图的添加和瓦片地图在线资源

    如何添加高德地图和瓦片地图在线资源 1. 演示效果 2. 代码添加 3. 瓦片地图在线资源 3.1 高德地图 3.2 天地图 3.3 其它地图源相关链接 所有的热爱都要不遗余力,真正喜欢它便给它更高的 ...

  3. ConvNeXt:手把手教你改模型

    作者:镜子(香港中文大学 计算机科学硕士) 本文经过作者同意转载 A ConvNet for the 2020s 我愿称之为2022年cv算法工程师抄作业必备手册,手把手教你改模型,把ResNet50 ...

  4. 手把手教你如何用Python从PDF文件中导出数据(附链接)

    作者:Mike Driscoll :翻译:季洋:校对:丁楠雅 本文约4000字,建议阅读10分钟. 本文介绍了在提取出想要的数据之后,如何将数据导出成其他格式的方法. 有很多时候你会想用Python从 ...

  5. 手把手教你如何Vue项目打包dist文件并Tomcat发布【超级详细】

    ???作者:bug菌 博客:CSDN.掘金等 ??公众号:猿圈奇妙屋 ??特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合. ??版权声明:文章里可能部分文字或者图片来源于互联网或者百度 ...

  6. keil5改工程名称_修改Keil工程名称并添加其他模块文件

    学习目标 在上一篇文章 <基于STM32固件库的MDK5工程建立> 基础上,将Keil工程名称Template修改为Usart 添加延时函数文件及串口1的实现文件 main.c文件中测试p ...

  7. 手把手教你学javaweb(五)文件的上传和下载

    javaweb项目文件的上传和下载 ​ 在进行文件的上传和下载之前,我们先把javaweb项目做一点点的改动,那就是将LoginServlet的跳转由原来的forward方式改为 redirect方式 ...

  8. matlab建立mex,手把手教你在VC++中建立MEX文件及调试

    在Visual C++中建立MEX文件及调试 在Matlab环境中可以方便的编辑MEX文件,而编译MEX文件只要一句mex命令,所以一般不需要VC++环境来建立MEX文件.但对于大型的MEX程序,可能 ...

  9. Node.js 高级篇(六):手把手教你使用和理解 Multer 实现文件上传,包懂 O(∩_∩)O~

    文章目录 前端 界面 代码 服务端 启动服务 文件信息 Multer 中间件 Multer(options) .single(fieldname) .array(fieldname[, maxCoun ...

最新文章

  1. FCKeditor的使用说明
  2. yum 卸载php及依赖包,yum使用指南-软件卸载、安装、更新、获取软件包
  3. 让XP远程桌面支持多用户
  4. MFC CEdit 自动换行功能
  5. break、continue、return的区别
  6. 剖析疫情环境下的国内云市场:大势所趋,正是大展拳脚的好时机!
  7. matlab怎么画二维热力图_[原创]Day3.箱线图和热力图的绘制
  8. 转:谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
  9. Android View.onMeasure方法的理解
  10. 区块链浏览器_YOYOW正式发布更新版本区块链浏览器
  11. spring-cloud熔断和负载均衡
  12. OLTP与OLAP介绍
  13. IDEA - Live Template
  14. centos安装mysql8及一些问题解决
  15. PMP考试中一些解题思路
  16. 什么是负反馈电路?微分.积分电路?“自激”现象?
  17. MES管理系统应用环境分析,以及实施面临的挑战
  18. 一键智能抠图-原理实现
  19. 打开win10电脑的蓝牙
  20. android红米机型适配,#MIUI#关于红米手机4高配版 Android版本适配的说明【miui9吧】_百度贴吧...

热门文章

  1. leetcode - 最长单词
  2. ASH、AWR、ADDM区别联系
  3. Idea配置JRebel插件的详细配置及图解
  4. ThreadPool.QueueUserWorkItem 方法 (WaitCallback)
  5. python 爬虫抓取心得分享
  6. oracle下tmp后缀文件怎么打开,tmp是什么文件?tmp文件如何打开
  7. Fiddler抓包查看接口的响应时间
  8. ASP.net Core 2.2中Jwt验证的使用方法及在微信小程序上应用
  9. 艾司博讯:在拼多多上面卖水果保证金多少
  10. css 字体间距 设置