QML插件扩展

转自:http://www.cnblogs.com/yanhuiw/p/4719597.html

准备分两节来介绍QML扩展插件,分别为

(一)基于QML文件的扩展方式

(二)基于C++的插件扩展

这篇先介绍基于QML的插件扩展。

先介绍几个基本概念:

qmldir: 用于组织自定义的QML插件,qmldir的具体写法可参考

.qmltypes:qml插件的解释文件,用于QtCreator语法高亮。可通过Qt提供的工具qmlplugindump自动生成

QML_IMPORT_PATH: 导入插件路径,以支持插件的语法高亮。个人理解是如果纯QML文件的扩展,没有封装到C++中,则直接导入路径,即可支持语法高亮,如果有C++封装,则需要通过.qmltypes支持高亮。

addImportPath: 添加import寻址目录,c++代码里添加,没有前两项,只是QtCreator不能高亮,没有这种,则插件无法使用。

具体步骤

一、建立插件工程

1.建立工程,首先通过QtCreator创建一个QMLPluginTest子目录工程:
在这里插入图片描述
2.在QMLPluginTest子目录下,添加app测试工程

3.新建QML插件工程,MyPlugin
在这里插入图片描述
4.新建向导会自动创建示例文件及插件名称,这里可自己修改URI名称,即你的插件名称
在这里插入图片描述
5.自动创建的MyPlugin生成目录结构如图:
在这里插入图片描述
其中qmldir文件描述的插件的组成:

   module MyPlugin

plugin QMLPlugin
6.这节只介绍纯QML的插件方式,先不管自动生成的插件文件。

7.在MyPlugin目录下,添加扩展qml,这里添加一个测试矩形,MyRect.qml
在这里插入图片描述
8.在qmldir中添加MyRect.qml,
在这里插入图片描述

二、使用插件

  1. 在app工程的main.qml中,import MyPlugin 1.0,
    在这里插入图片描述
    2.主要到右边代码中有让人郁闷的波浪线,说明QtCreator没有识别你的插件,需要QML_IMPORT_PATH来标记,打开app.pro文件

默认创建时QML_IMPORT_PATH =,没有赋值,修改为插件的路径,建议这里使用相对路径

QML_IMPORT_PATH = $$PWD/…/

3.关闭QtCreator,重新打开,可以红色波浪线么有了

4.在main.qml中,使用创建的MyRect

在这里插入图片描述
5.最后一步,导入插件路径,在app的main.cpp添加import代码,如果没有这句,程序启动会报错误:

qrc:/main.qml:3 module “MyPlugin” is not installed

所以需在c++中添加importPath,代码如下:

QQmlApplicationEngine engine;

engine.addImportPath(“E:/T/QMLPlugin/QMLPluginTest/”)?注意这里导入路径是MyPlugin的上层文件夹,不是MyPlugin文件夹

engine.load(QUrl(QStringLiteral(“qrc:/main.qml”)));

6.最后的程序目录结构:
在这里插入图片描述
附录:

1.程序生成路径:E:\T\QMLPlugin\build

2.程序源代码下载地址

https://github.com/youngerking1985/QML_Learn/tree/master/QMLPlugin1

转自:http://www.cnblogs.com/yanhuiw/p/4719597.html
参考:https://www.cnblogs.com/findumars/p/9525473.html
https://blog.csdn.net/yansmile1/article/details/52982547
https://blog.csdn.net/zhoudonghao4381/article/details/88567203

去掉红波浪的方法:
https://www.cnblogs.com/xianqingzh/p/4368070.html

QT之插件Plugin生成与使用(雨田哥):
https://blog.csdn.net/ly305750665/article/details/78680647

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux、QML和OSM插件都是计算机领域的重要概念。 Linux是一个开源的操作系统内核,它可以被用来开发丰富的应用程序。Linux支持多种硬件设备和处理器架构,这使得它在工业和企业领域都拥有广泛的应用。Linux是高度可定制和可配置的,并且它具有强大的网络能力和安全性。 QML是Qt Quick Markup Language的缩写,是一种基于JavaScript的用户界面开发语言。QML被广泛使用于Qt应用程序的开发,Qt是一个跨平台的应用程序开发框架。QML具有声明式语法和严格的类型系统,这使得它在开发图形用户界面时非常方便和高效。 OSM插件是一个基于OpenStreetMap的编程接口。OpenStreetMap是一个免费的、可编辑的在线地图服务,用户可以在上面添加、修改和删除地图中的数据。OSM插件为开发者提供了使用OpenStreetMap数据的接口,它可以轻松地将OpenStreetMap数据整合到开发的应用程序中。 综合而言,Linux、QML和OSM插件都是开发人员必须熟悉和掌握的概念。Linux提供了一个强大的操作系统内核用于应用程序的开发和部署;QML提供了一个高效、灵活的用户界面开发语言;OSM插件为应用程序提供了开放的地图数据接口,帮助应用程序实现更精细的地理信息展示和交互。 ### 回答2: Linux QML OSM 插件是一个功能强大的工具,它可以帮助开发者在 Linux 操作系统中使用 OSM(OpenStreetMap)地图。OSM 是一个开源、免费的地图服务,它的数据可以被任何人免费使用和修改。有了这个插件,开发者可以将 OSM 地图集成到他们的应用程序中,从而为用户提供定位、导航和位置信息。QML 是一种用于开发跨平台用户界面的技术,它可以方便地与其他编程语言集成,而且具有良好的性能和易用性。因此,Linux QML OSM 插件具有灵活和可扩展的特点,使其成为一个受欢迎的工具。 使用 Linux QML OSM 插件,开发者可以在应用程序中轻松地显示 OSM 地图,并在地图上添加自定义图层、标签和其他元素。该插件还提供了强大的地理编码和路径规划功能,使应用程序能够更准确地解析用户输入的地理位置信息,以及计算出最佳的路径和距离。此外,该插件还支持离线地图缓存,使用户可以在没有互联网连接的情况下使用地图。 总的来说,Linux QML OSM 插件是一个非常有用的工具,它可以帮助开发者轻松地将 OSM 地图集成到他们的应用程序中,并提供了高度可定制的功能,使应用程序拥有良好的用户体验。同时,由于 OSM 数据是完全开放的,因此该插件还可以为开发者们提供更多的自由和创新空间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值