QML之 .qmlproject qmldir

.qmlproject文件中一般的写法:

import QmlProject 1.1

Project {
    mainFile: "main.qml"

    /* Include .qml, .js, and image files from current directory and subdirectories */
    QmlFiles {
        directory: "."
    }
    JavaScriptFiles {
        directory: "."
    }
    ImageFiles {
        directory: "."
    }
    /* List of plugin directories passed to QML runtime */
    importPaths: [ "./modules","./demo" ]
}

mainFile指定qmlviewer加载的第一个文件,可以忽略,然后在QTCreator中的Project设置中选定主文件。

                一般来说,不使用qmlviewer工具加载程序的话,不需要关心这个,因为从C++启动加载qml是十分常见的。

QmlFiles,JavaScriptFiles,ImageFiles指定qml js 和图像文件的路径

                 指定工程的文件

imporPaths则指定qmlviewer运行时遇到import模块时搜索的路径。

                 不知道从C++启动加载QML时,这个有没有用。

模块导入方法:

支持QML模块化

1、大写字母开头的.qml文件,可以将文件名看作模块进行导入。例如存在文件夹Modules下的MyButton.qml。导入方法:

       import Modules

       import MyButton

       或者 import Modules.MyButton

2、若在同一文件夹下,访问模块不需要import声明即可直接调用

       需要注意方法1和方法2都需要将模块文件名第一个字母进行大写。

3、使用qmldir

      qmldir的作用有2种:listing directory files和module definition

      使用qmldir的优点在于:

      A、qml文件的路径可以移动

             QML文件改变路径时,只需要修改此QML文件所在文件夹里的qmldir文件。这样更方便整个程序的维护。

      B、可以进行版本管理

             MyType 1.0 MyType.qml

             支持兼容:

                    MyType 1.1 MyType.qml

                    MyWindow 1.2 MyWindow.qml

                    import Module 1.2会支持MyType 1.1和MyWindow 1.2

                    import Module 1.1只能引入MyTyep 1.1  (MyWindow1.2只支持1.2版本后的)

                    import Module  1.3/1.0  会报错(没有1.3或者1.0的版本)

              支持同一个类型多个版本

                    MyType 1.1 MyType11.qml

                    MyType 1.3 MyType13.qml

                    MyType 1.5 MyType15.qml

                    MyWindow 1.4 MyWindow14.qml

                    那么import Module1.4会引入 MyWindow1.4和MyType1.3(比他小的最接近的)

      C、可以集成js文件和c++插件

              Plugin myplugin(没有版本信息)

              MyFunction 1.1 MyFunction.js

      D、远程导入时,可以隐藏私有模块

              Internal PrivateModule PrivateModule.qml。

              (例如PrivateModule.qml只是一个内部使用的类型,在远程导入时,用户就看不到这个文件)

      E、导入描述信息

              typeinfo mymodule.qmltypes.

      F、依赖文件

             depend MyOtherModule 1.0

             


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值