QML组件注册单例的方法
一、将一个QML组件声明为单例,如
//MyStyleObject.qml
pragma Singleton //注意这里
import QtQuick 2.0
Item {
readonly property string strText: qsTr("这是一个qml单例")
readonly property int fontPointSize: 16
}
二、注册组件
现在你有两种选择
1、在C++中注册组件
要在你的C ++代码的某个地方通过C ++注册单例,你需要调qmlRegisterSingletonType(),如:
qmlRegisterSingletonType( QUrl("qrc:/MyStyleObject.qml"),
"ca.mystyle",
1, 0,
"MyStyle" );
2、Alternatively,使用qmldir文件
将名为qmldir的文件添加到MyStyleObject.qml文件所在的目录,并添加进工程。
qmldir的文件内容如下:
singleton MyStyle MyStyleObject.qml
三、使用
如果你注册组件是通过使用qmldir文件方式,使用方法如下:(直接用)
Text {
id: textTemp
text: MyStyle.fontPointSize
}
Otherwise,
先导入再使用,如:
import ca.mystyle 1.0
Text {
id: textTemp
text: MyStyle.fontPointSize
}