Я динамически добавляю вкладки в 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