Динамическое добавление вкладок в qml
Я пытаюсь динамически создать Tab
s в 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: не удается установить свойство' color`из null'.
Я попытался получить доступ к Tab
с getTab()
, чтобы изменить цвет, но я получаю ту же ошибку. Может кто-нибудь объяснить, что я делаю не так?
2 ответа:
Наконец-то собрался и попытался исправить это, и ему это удалось. Решил опубликовать в качестве ответа на случай, если кто-то наткнется на это от google и имеет аналогичную проблему.
Решение состояло в том, чтобы установить
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 }
Это прекрасно работает.