.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