0

別のファイルから 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
        }
    }
}

私は何を間違っていますか?

4

1 に答える 1

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

それを解決しました。

于 2015-12-21T23:53:05.507 に答える