【QT】自定义QML模块

1、qmldir文件
qmldir 是一个纯文本文件,用来定义QML模块,下面是一些常用的命令:

module <ModuleIdentifier>
声明模块id,id可以是带点的URI,注意与模块安装路径保持一致,这条命令写在首行,最多有一条,例如:
module ExampleModule

<TypeName> <InitialVersion> <File>
声明在模块中可以使用的QML对象类型,这条命令可有多行,例如:
MyCustomType 1.0 MyCustomType.qml

internal <TypeName> <File>
声明属于模块的但不以使用的QML对象类型,这条命令可有多行,例如:
internal MyPrivateType MyPrivateType.qml

<ResourceIdentifier> <InitialVersion> <File>
声明在模块中可以使用的JavaScript文件,这条命令可有多行,例如:
MyScript 1.0 MyScript.js

plugin <Name> [<path>]
声明在模块中可以使用的插件,<Name>是插件库名,这条命令可有多行,例如:
plugin MyPluginLibrary

classname <C++ plugin class>
提供了在模块中使用的C++插件的类名。

typeinfo <File>
声明类型描述文件,其后缀是qmltypes,例如:
typeinfo mymodule.qmltypes

#<Comment>
注释声明,例如:
#this is a comment

有了qmldir文件,就可以在QML文件中导入相应的模块了,命令如下:
import <ModuleIdentifier> <InitialVersion> [as <Qualifier>] <ModuleIdentifier>是模块id,<InitialVersion>是模块版本号,[as <Qualifier>]是可选的,类似于C++的名字空间,例如:
import ExampleModule1.0
新版本兼容老版本的数据,反过来则不行。

2、qmltypes文件
xxx.qmltypes 文件可以使用qmlplugindump工具生成。

3、QML文件目录导入
import“<DirectoryPath>” [as <Qualifier>]
<DirectoryPath>可以是本地目录,也可以是远程目录,例如:
import“../mycomponents”
import“http://www.my-example-server.com/myapp/mycomponents”
[as <Qualifier>]是可选的,用来声明标识符,避免模块中的数据暴露到全局,例如:
import“../mycomponents” as MyComponents

4、C++插件
创建C++插件给QML使用,例子可参考:
($QtCreatorPath)/Examples/Qt-5.3/qml/tutorials/extending/chater6-plugins/


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值