4

我刚刚开始使用 QML,并且有一个视图,其中有一堆组件,如下所示:

Window {
    ....
    property Component dateTumbler: ControlView {
        // Definition follows
    }

    property Component timeTumbler: ControlView {
       // More definition follows
    }

    // More controls
}

这使得主 QML 文件非常长并且难以编辑和维护。我试图将其分成不同的文件,如下所示:

// DateTumblerView.qml
component: DateTumblerView { // Not sure how to inherit here..
    // Definition here
}

我正在尝试像这样使用它:

property component dateTumbler: DateTumblerView {}

但是,这永远不会起作用,并且DateTumblerView永远找不到。我不确定我这样做是否正确。

[编辑] ControlView 定义如下:

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtMultimedia 5.5

Rectangle {
    id: view
    property bool darkBackground: false

    Text {
        id: textSingleton
    }

    SoundEffect {
        id: playCalSound
        source: "qrc:/sound/test.wav"
    }
}

[结束编辑]

将 QML 代码拆分为多个文件的正确方法是什么?

4

1 回答 1

8

您的DateTumblerView.qml文件应如下所示:

ControlView {
   // More definition follows
}

你会像这样使用它:

property Component dateTumbler: DateTumblerView {}

或者:

Component {
    id: dateTumbler

    DateTumblerView {}
}

或者,如果您想直接使用它:

DateTumblerView {}

这与您的代码仅在一个文件中时几乎相同。任何时候<Type> {},您都在继承该类型,并且可以设置或添加新的属性、函数和子组件。不同之处在于它位于单独的文件中,具有特定的名称(文件名),并且您可以根据需要多次重复使用该代码。

有关更多详细信息,请参阅定义自定义 QML 类型以供重用

于 2016-01-31T21:25:00.313 回答