是否可以创建完全单文件静态QML组件库?

问题描述 投票:0回答:1

是否可以创建完全单文件QML组件库?嗯,并不是真正的单文件,因为存在头文件。但我的观点是,所有的 QML 文件都使用

*.qrc
文件捆绑到二进制文件中,用户可以像这样导入库:

import Foo

Bar {
    // ...
}

QML 引擎可以正常识别它,就像库有一个目录,其中有一个指向 QML 文件的

qmldir
文件。

我尝试将 QML 文件和

qmldir
文件放入 QRC 文件中,并添加作为 QML 引擎的 QRC 路径的导入路径,但没有成功。

qt qml static-libraries
1个回答
0
投票

我认为你所描述的是单身人士。为了构建单例,通常,我创建普通组件,比如说

FooBarPrivate
,在那里我可以正确配置我的组件,然后,最后,我将它变成单例,比如说,
FooBar

我已经使用

qmake
语法定义了以下内容,所以我需要:

  1. pragma Singleton
     顶部使用 
    FooBar.qml
  2. FooBar.qml
    定义为
    singleton
     中的 
    qmldir
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
Page {
    title: "Singleton Test"
    ColumnLayout {
        anchors.centerIn: parent
        Button {
            text: "Click Me"
            onClicked: text = tst.superMethod() // component test
        }
        Button {
            text: "Click Me"
            onClicked: text = FooBar.superMethod() // singleton test
        }
    }
    FooBarPrivate {
        id: tst
    }
}

// qmldir
singleton FooBar 1.0 FooBar.qml

// FooBarPrivate.qml
import QtQuick
import QtQuick.Controls
Item {
    function superMethod() {
        return Math.random();
    }
}

// FooBar.qml
pragma Singleton
FooBarPrivate { }

您可以在线尝试!

© www.soinside.com 2019 - 2024. All rights reserved.