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/