5

这是一个 QML 新手问题。从表视图示例中,我有这样的代码:

Column {
        anchors.top: toolbar.bottom
        .....

        TabView {
            id:frame
            ......

            Tab {
                title: "XmlListModel"
                ...
            }
            Tab { ...

由于 qml 文件变得很长,我想知道是否可以嵌套 qml 文件

Column {
        anchors.top: toolbar.bottom
        .....

        TabView {
            id:frame
            ......

            <include tab 1 qml file>   <-- possible ????? -------
            <include tab 2 qml file>

如果include不可能,QML 程序员如何构造他的代码?即使在简单的示例中,也已经有太多行无法处理恕我直言。

- 编辑 -

回答后,我发现这值得阅读:

  1. http://qt-project.org/doc/qt-5.0/qtqml/qtqml-syntax-directoryimports.html
  2. 如何在 QML 中重用代码
4

1 回答 1

6

不,你不能做“包含”,但你可以把东西放到命名对象中。

例如,将您的 Tab #1 文件放入名为“Tab1”的文件中(或与其实际显示的内容相关的更好的名称;我不知道所以无法为您提供名称)。

所以在 Tab1.qml 我们有:

import ...
Tab {
  id: tab1
  ...
}

然后在主文件中您现在可以引用它:

...
Tabview {
   id: frame
   Tab1 { id: tab1 }
}

您会注意到我再次为它添加了一个 id,因为没有它,父级将无法在子级中引用该 id。(它们可以是不同的名称,但不要那样做。动物会哭。实际上,您也可以省略孩子中的 id,但很多人喜欢能够在文件中看到它。)

于 2013-10-23T13:24:17.580 回答