2

TabQML で sを動的に作成しようとしています。以下のコードは、私がやりたいことの簡単な例です。

import QtQuick 2.0
import QtQuick.Controls 1.0

ApplicationWindow{
    id:win

    TabView{
        id:tb
        anchors.fill:parent

        MouseArea{
            anchors.fill:parent
            onClicked:tb.loadTab()
        }

        Component{
            id:viewComp
            Rectangle{
                anchors.fill:parent
                color:"black"
            }
        }

        function loadTab(){
            var t=addTab("x",viewComp)
            t.item.color="blue" //line 20
        }
    }
}

Tab最初の作品の追加は期待どおりです。ただし、その後、他のTab追加されたエラーがトリガーされます。

TypeError: null` のプロパティ 'color' を設定できません。

色を変更するためにTabwithにアクセスしようとしましたが、同じエラーが発生します。getTab()誰かが私が間違っていることを説明できますか?

4

2 に答える 2

3

最後に回避し、これを修正しようとしましたが、成功しました。誰かがグーグルからこれに出くわし、同様の問題を抱えている場合に備えて、回答として投稿することにしました。

解決策は、currentIndexを新しいに設定してから、 のTabプロパティを設定することでしたTab。これは、関数loadTab()が次のようになることを意味します。

loadTab(){
    var c_tab=currentIndex
    var t=tb.addTab("x",viewComp)
    currentIndex=count-1
    t.item.color="blue" 
    currentIndex=c_tab
}

これはうまく機能します。

于 2014-06-07T05:20:00.870 に答える