自定义QML模块

来源:互联网 发布:俊知集团官网 编辑:程序博客网 时间:2024/05/21 06:30

1qmldir文件

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


module <ModuleIdentifier>

声明模块idid可以是带点的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

新版本兼容老版本的数据,反过来则不行。


2qmltypes文件

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


3QML文件目录导入

import“<DirectoryPath>” [as <Qualifier>]

<DirectoryPath>可以是本地目录,也可以是远程目录,例如:

import“../mycomponents”

import“http://www.my-example-server.com/myapp/mycomponents”

[as<Qualifier>]是可选的,用来声明标识符,避免模块中的数据暴露到全局,例如:

import“../mycomponents” as MyComponents


4C++插件

创建C++插件给QML使用,例子可参考:

($QtCreatorPath)/Examples/Qt-5.3/qml/tutorials/extending/chater6-plugins/


3 0
原创粉丝点击