• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

浅谈qml使用过程中的关键字和心得(组件模式、qmldir)

一.单例模式

所谓单例模式,就是声明全局属性并在其他文件中使用它,所以单例模式很适合做全局的配置文件。例如颜色、其他系统属性

实现单例模式的步骤:

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
全部回复(0)
正序查看
倒序查看
现在还没有回复呢,说说你的想法