【QML】如何在QML中添加自定义模块并使用

一、引言

在《导入本地QML文档目录》一文中,记录了如何导入本地QML文档,本文将记录:如何在QML中使用自定义模块。

二、过程记录

本文以一个backend目录来存放自定义的模块,在该目录放置一个Data目录作为模块。其中用于描述模块的就有一个qmldir文件和Values.qml文件。如下图所示:
在这里插入图片描述

(1)创建模块

自定义一个QML类型,用于描述应用程序中所使用到的数据。
在Values.qml放置以下内容:

pragma Singleton
import QtQuick 2.10

QtObject {
    id: values

    property int m_age: 25
    property string m_name: iriczhao
}

在qmldir文件内容如下,以【singleton 】单例关键词指定模块:

singleton Values 1.0 Values.qml

还有一种定义模块的方法,在qmldir文件下,以【module】关键词指定,如下:
module
module关键字,后接模块标识符,每个qmldir文件只能有一个标识符。

[singleton]
singleton用来声明一个单例类型,它是可省略的。TypeName是类型名称。InitialVersion用来指定版本号。File是QML类型对应文件所在的位置。

module MyModule
MyModule1.0 MyModule.qml

(注:本文以singleton 关键词为例)


2、导入模块

在.pro工程描述文件中使用QML_IMPORT_PATH导入。
在这里插入图片描述

3、安装模块

在运行应用程序前,需要安装自定义的模块,即可以让Qt在执行时能够找到自定义的模块。【如果不安装模块,在项目工程中虽然不会报错,但是应用程序无法启动运行】

有以下三种方式:
(1)通过代码添加

QQmlApplicationEngine engine;
engine.addImportPath("模块路径");

(2)通过qputenv设置QML2_IMPORT_PATH

qputenv("QML2_IMPORT_PATH", "模块路径"); 

注意模块路径是相对于资源管理路径。
如下图所示:
在这里插入图片描述
(3)或者直接设置QML2_IMPORT_PATH环境变量


4、注意事项

对于导入的模块名称或者在给导入模块起一个别名时,名称的第一个字母必须是大写的,这一点极其重要!!!!!!!!

(多打几个感叹号,提醒自己注意,啧啧啧啧0.0)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iriczhao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值