QML文件包含 - 或一个单片文件(结构QML代码)?

Hor*_*ter 4 qml qt5.1

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

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

        TabView {
            id:frame
            ......

            Tab {
                title: "XmlListModel"
                ...
            }
            Tab { ...
Run Code Online (Sandbox Code Playgroud)

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

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

        TabView {
            id:frame
            ......

            <include tab 1 qml file>   <-- possible ????? -------
            <include tab 2 qml file>
Run Code Online (Sandbox Code Playgroud)

如果include不可能,QML程序员如何构建他的代码?即使在简单的例子中,已经有太多的线来处理恕我直言.

- 编辑 -

在答案之后我发现这个值得注意:

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

Wes*_*ker 5

不,你不能做"包括",但你可以将东西放入命名对象.

例如,把你的Tab#1文件放在一个名为"Tab1"的文件中(或者一个更好的名称,它与它实际显示的内容有关;我不知道这个名字无法帮助你).

所以在Tab1.qml中我们有:

import ...
Tab {
  id: tab1
  ...
}
Run Code Online (Sandbox Code Playgroud)

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

...
Tabview {
   id: frame
   Tab1 { id: tab1 }
}
Run Code Online (Sandbox Code Playgroud)

你会注意到我再次为它添加了一个id,因为如果没有它,父母将无法引用该id中的id.(它们可以是不同的名字,但不要这样做.动物会哭.实际上,你也可以忽略孩子的身份,但许多人喜欢能够在文件中看到它.)