一.单例模式
所谓单例模式,就是声明全局属性并在其他文件中使用它,所以单例模式很适合做全局的配置文件。例如颜色、其他系统属性
实现单例模式的步骤:
1.QML脚本中使用pragma Singleton关键字
2.在qmldir 将该组件注册为单例
3.需要将它导入到需要使用他的其它QML文件中。
具体看代码:
Global.qml
pragma Singleton //这个是实现单例模式的关键
import QtQuick 2.0
QtObject {
property color bgColor: 'lightblue';
property int textSize: 20
property color textColor: "green"
}
在qmldir中注册
singleton Global Global.qml
TestSingleton.qml
import QtQuick 2.0
import ".." // 单例模式必须显式的导入单例文件所在的目录
Rectangle {
width: 500
height: 500
color: Global.bgColor;
Text{
text: 'hello world'
font.pixelSize: Global.textSize // 调用单例对象的属性
color: Global.textColor
anchors.centerIn: parent
}
}
二、qmldir文件
qmldir 是一个纯文本文件,用来定义QML模块,下面是一些常用的命令:
module <ModuleIdentifier>
声明模块id,id可以是带点的URI,注意与模块安装路径保持一致,这条命令写在首行,最多有一条,例如:
module ExampleModule
文件结构:
qmldir写法(qmldir跟qml文件在同一目录):
使用前要先增加导入路径(导入路径为qmldir的所在目录的父目录):
engine.assImportPath("../qml") //导入路径为qmldir的所在目录的父目录
使用的时候直接
import qml.Controls 1.0