QtQuick 基础教程 第一课: import用法

模块导入通用形式如下:

import <ModuleIdentifier> <Version.Number> [as <Qualifier>]

import 声明导入一个指定的模块,同目录下的qml文件不需要import,直接在元素中声明即可。

//import QtQuick 2.0 as Quick 可以使用as使用命名空间,解决冲突类型名称的模块
import QtQuick 2.12 as Quick

Quick.Rectangle {
  width: 100
  height: 100
  color: "black"
}

import 导入目录,<Qualifier>适用于目录导入和模块导入的语义相似

import "<DirectoryPath>" [as <Qualifier>]

注意:导入路径是网络透明的:应用程序可以从远程路径导入文档,就像从本地路径导入文档一样。请参阅QML 文档中网络透明度的一般 URL 解析规则。如果该目录是远程目录,则它必须包含一个目录导入列表 qmldir 文件,因为如果该qmldir文件不存在,QML 引擎将无法确定远程目录的内容。

JavaScript资源可以直接导入到QML文档中。每个JavaScript

import "<JavaScriptFile>" as <Identifier>

注意: <Identifier>在 QML 文档中必须是唯一的,这与可应用于模块导入的本地命名空间限定符不同。

JavaScript文件可以由模块提供,方法是向qmldir指定模块的文件添加标识符定义。

//qmldir 文件内容
module CatGrayTest
TestModel0 1.0 TestModel0.js
TestModel1 1.0 TestModel1.js
// 演示1
import QtQuick 2.12
import CatGrayTest 1.0

Item {
      Component.onCompleted: {
        TestModel0.testFunction();
      }
}

如果模块被导入到本地命名空间中,JavaScript资源标识符必须以命名空间限定符作为前缀才能使用:

// 演示2
import QtQuick 2.12
import CatGrayTest 1.0 as CatTest

Item {
    Component.onCompleted: {s
      CatTest.TestModel0.testFunction();
    }
}
Qml Import Path

当导入已标识的模块时,QML引擎将在导入路径中搜索匹配的模块。

QQmlEngine::importPathList()返回的导入路径定义了引擎要搜索的默认位置。默认情况下,该列表包含:

  • 当前文件所在的目录

  • 由QLibraryInfo::Qml2ImportsPath()指定的位置

  • 由QML2_IMPORT_PATH环境变量指定的路径

  • 资源中的 qrc:/qt-project.org/imports 路径

可以通过QQmlEngine::addImportPath () 或QML2_IMPORT_PATH环境变量添加额外的导入路径。在运行qmlscene工具时,您还可以使用该-I选项添加导入路径。

您可以QML2_IMPORT_PATH通过使用路径分隔符将它们连接起来,在环境变量中指定多个导入路径。在 Windows 上,路径分隔符是一个分号 ( ; ),在其他平台上它是一个冒号 ( : )。这意味着您不能在 QML2_IMPORT_PATH 中指定资源路径或 URL,因为它们本身包含冒号。但是,您可以通过以编程方式调用QQmlEngine::addImportPath ()来添加资源路径和 URL 。

目录清单qmldir文件语法
命令语法描述
对象声明<TypeName> <FileName><类型名> <文件名>,对象类型声明允许将QML文档使用指定的<类型名>进行暴露. 例如: RoundedButton RoundedBtn.qml
内部对象类型声明internal <TypeName> <FileName>internal <类型名> <文件名>内部对象类型声明允许QML文档使用<类型名>进行暴露,但是只能暴露给该目录中的QML文档.例如internal RoundedButton RoundedBtn.qml
JavaScript资源声明<Identifier> <FileName><标识符><文件名>,JavaScript资源声明允许JavaScript文件通过给定的标识符进行暴露.例如RoundedButton RoundedBtn.js
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值