我正在尝试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:无法将属性'color'设置为null。
我尝试访问Tab
withgetTab()
来更改颜色,但是出现了同样的错误。有人可以解释我在做什么错吗?
终于绕了过去,并试图解决此问题,并取得了成功。决定将其发布为答案,以防万一有人从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
}
这很好用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句