从不同文件加载选项卡不显示任何内容。 QML

时间:2015-12-21 19:01:42

标签: qt qml qtquick2 tabview qtquickcontrols

我正在尝试动态地将标签加载到来自不同文件的TabView中。为此,我使用Qt.createComponent并将组件添加到视图中。该标签已加载,但其内容未显示且已正确加载。像这样:

TabView {
   id:editor
   Layout.minimumWidth: 50
   Layout.fillWidth: true
}

Component.onCompleted: {
    function newTab() {
        var c = Qt.createComponent("tab.qml");
        editor.addTab("tab", c);
        var last = editor.count - 1;
        editor.getTab(last).active = true;
    }

    newTab();
    newTab();
}

" tab.qml"文件:

import QtQuick 2.0
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.4


Tab {
    Rectangle {
        Layout.fillWidth: true
        Layout.fillHeight: true
        color: "lightgray"

        TextArea {
            anchors.fill: parent
        }
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

在阅读了@folibis清理建议后,我意识到我得到Tab onCompleted处理程序的方式无效。为什么我不知道。但是替换

var c = Qt.createComponent("tab.qml");
editor.addTab("tab", c);
var last = editor.count - 1;
editor.getTab(last).active = true;

var c = Qt.createComponent("tab.qml");
var tab = editor.addTab("tab", c);
tab.active = true

解决了它。