QML 文件包括 - 还是一个整体文件(结构 QML 代码)?

标签 qml qt5.1

这是一个 QML 新手问题。从 table view example 我有这样的代码:

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 程序员如何构建他的代码?即使在 simple example 中,恕我直言,已经有太多的行来处理了。

- 编辑 -

在回答之后,我发现这值得一读:
  • http://qt-project.org/doc/qt-5.0/qtqml/qtqml-syntax-directoryimports.html
  • How to reuse code at QML
  • 最佳答案

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

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

    所以在 Tab1.qml 中我们有:

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

    然后在主文件中,您现在可以引用它:
    ...
    Tabview {
       id: frame
       Tab1 { id: tab1 }
    }
    

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

    关于QML 文件包括 - 还是一个整体文件(结构 QML 代码)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19541369/

    相关文章:

    qt - QML QtCharts CandlestickSeries 中继器

    c++ - 从 QML 简单访问 C++ 对象数据

    c++ - 在 qml 列表中显示查询结果

    qt - QML - 寻址祖先

    c++ - 头文件中的 QList 声明导致源文件中出现段错误

    c++ - fromHBITMAP 在 QT 5.1.1 中可用吗

    c++ - 单击聚焦小部件时的聚焦事件

    Qt 5.2 将外部文件包含到 Android 包中?

    qt - 自定义样式 Qt 快速控件

    c++ - Qt : CONFIG += C++11, 但 -std=c++0x