3
我动态地将选项卡添加到TabView
并将选项卡的项目传递给C++以进一步处理。问题是方法tabview.getTab(tabview.getTab(tabview.count-1).item)
返回null
为哪个索引是> 0。下面是代码:如何通过编程创建选项卡的项目?
//main.qml
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
signal tabAdded(variant c)
ColumnLayout{
anchors.fill: parent
TabView{
visible: true
id:tabview
Layout.fillHeight: true
Layout.fillWidth: true
}
Button{
text: "add tab"
onClicked:{
var c = Qt.createComponent("Tab.qml");
tabview.addTab("tab", c)
// tabAdded(tabview.getTab(tabview.count-1).item)
console.log(tabview.getTab(tabview.count-1).item)
}
}
}
}
//Tab.qml
import QtQuick 2.0
import QtQuick.Controls 1.1
Item{
signal tabButtonClicked()
anchors.fill: parent
Button{
text: "tabButton"
anchors.centerIn: parent
onClicked: tabButtonClicked()
}
}
我想出,如果选项卡(索引)中的溶液手动激活(通过用鼠标点击它)tabview.getTab(index).item
返回apropriate值。似乎只有当用户首先激活标签时才会创建标签的项目。那么,如何在创建标签后立即创建项目?
谢谢,它的工作原理! – lnk 2014-11-24 12:24:46