如何制作tab';要以编程方式创建的项目? < >我动态添加标签到 TabVIEW>代码>,并将Tab项传递给C++,以便进一步处理。问题是方法tabview.getTab(tabview.getTab(tabview.count-1).item)返回索引大于0的对象的null。以下是代码: //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() } }

如何制作tab';要以编程方式创建的项目? < >我动态添加标签到 TabVIEW>代码>,并将Tab项传递给C++,以便进一步处理。问题是方法tabview.getTab(tabview.getTab(tabview.count-1).item)返回索引大于0的对象的null。以下是代码: //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() } },qt,qml,Qt,Qml,我发现tabview.getTab(index).item在手动激活tab(index)时(通过鼠标单击)返回适当的值。似乎只有在用户首次激活选项卡时才创建选项卡项。那么,如何在创建选项卡后立即创建项呢?TableView中的每个选项卡都由继承自的选项卡组件表示。如果要强制选项卡加载其内容,只需将其设置为true即可。此属性控制何时必须加载组件。现在,您的按钮代码如下所示: Button{ text: "add tab" onClicked:{ var c = Q

我发现
tabview.getTab(index).item
在手动激活tab(index)时(通过鼠标单击)返回适当的值。似乎只有在用户首次激活选项卡时才创建选项卡项。那么,如何在创建选项卡后立即创建项呢?

TableView中的每个选项卡都由继承自的选项卡组件表示。如果要强制选项卡加载其内容,只需将其设置为true即可。此属性控制何时必须加载组件。现在,您的按钮代码如下所示:

Button{
    text: "add tab"
    onClicked:{
        var c = Qt.createComponent("Tab.qml");
        tabview.addTab("tab", c);
        var last = tabview.count-1;
        tabview.getTab(last).active = true; // Now the content will be loaded
        console.log(tabview.getTab(last).item);
    }
我希望这对你有帮助