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

             


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章