动态添加 TabButton 到 TabBar

Dynamically adding TabButton to TabBar

我正在尝试将 TabButton 动态添加到 TabBar。我的新选项卡位于一个名为 Network 的文件中,我的 GWEdit_101 源自带有 TabBar 的 class。当代码运行并尝试添加选项卡时,它会在下面的 addItem 行中出错。我搞不懂 cause/solution.

我的文件 Network.qml 是:

import QtQuick 2.0
import QtQuick.Controls 2.12

TabButton {
    id: tabNetwork
    contentItem: Text {
        text: qsTr("NewStuff")
        opacity: enabled ? 1.0 : 0.3
        horizontalAlignment: Text.AlignHCenter
        verticalAlignment: Text.AlignVCenter
        elide: Text.ElideRight
    }
}

我的文件 GWEdit_101.qml 是:

import QtQuick 2.0
import QtQuick.Controls 2.12
GWEdit {

    Component.onCompleted: {
        tabBar.addItem(Network)
    }
}

导致这个错误

"Could not convert argument 0 at"
     "onCompleted@qrc:/content/equipment/gateway/edit/makemodels/GWEdit_101.qml:6"

您必须使用 Qt.createQmlObject,因为网络是一个组件,而不是一个项目。

TabBar {
    id: tabBar
    Component.onCompleted: {
        var tabItem = Qt.createQmlObject('Network{}', tabBar)
        tabBar.addItem(tabItem);
    }
}

更多信息请阅读:Dynamic QML Object Creation from JavaScript