Динамическое добавление вкладок в 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 }Это прекрасно работает.