我試圖在QML中動態創建Tab
。下面的代碼是我想要做的一個簡單例子。如預期以qml動態添加選項卡
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: Cannot set property 'color' of null`.
我試圖訪問Tab
與getTab()
改變顏色,但我得到了同樣的錯誤。有人能解釋我做錯了什麼嗎?
還應當指出的是'Tab'從'Loader'繼承:該組件延遲初始化。設置索引強制'Loader'加載組件,因爲它變得可見。另一種解決方案是設置'active:true'來強制加載,即使'Tab'不可見,即'currentIndex'沒有設置爲新創建的'Tab'。 – BaCaRoZzo