单例模式:保证仅有一个实例,并提供一个访问它的全局访问点,适合做全局的配置文件

总结流程如下:

1、将一个QML组件声明为单例: 在QML脚本中使用pragma Singleton关键字

global/Global.qml

pragma Singleton
import QtQuick 2.0
QtObject {
    property int screenHeight: 400
    property int screenWidth: 400
    property color bgColor: 'lightblue';
    property int textSize: 20
    property color textColor: "green"
}

2、将该组件注册为单例: 使用qmldir文件 或者 qmlRegisterSingletonType注册

global/qmldir

singleton Global 1.0 Global.qml

 

3、将它导入到需要使用他的其它QML文件中: import

main.qml

import QtQuick 2.6
import QtQuick.Window 2.2
import "qrc:///global/"

Window {
    visible: true
    width: Global.screenWidth
    height: Global.screenHeight
    title: qsTr("Hello World")
    color: Global.bgColor;
}

4、文件结构

├── global

│   ├── Global.qml

│   └── qmldir

├── main.cpp

├── main.qml

├── qml.qrc

├── singleton_demo.pro

└── singleton_demo.pro.user

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐