【发布时间】:2021-10-31 01:07:38
【问题描述】:
我在名为 NetworkSheet 的文件中创建了一个项目。我的其他 QML 文件 (A.qml) 包含一个 StackLayout (id tabStack),我想将 NetworkSheet 添加到堆栈的后面。
由于几个不完整的示例,我正在兜圈子。有人可以建议如何做到这一点吗?我得到的最接近的是:
var stackItem = Qt.createQmlObject('import "../tabs"; NetworkSheet{}', tabStack);
tabStack.children.push(stackItem);
但是 tabStack 的孩子没有推送方法。
【问题讨论】:
-
StackView会在您的应用中工作,而不是StackLayout? StackView 内置了简单的推送/弹出方法。 -
我正在使用 TabBar 来控制我的 StackLayout(模拟用户单击选项卡时的切换页面)。 StackView 可以用这个吗? (我没有看到可写的 currentIndex 属性,所以不确定它是否可以工作)
-
A TabBar 可以与 StackView 一起工作,但它不会那么简单,因为没有 currentIndex 属性。一种方法是每个 TabButton 可以有一个 onClicked 处理程序来推送您想要显示的任何页面。
-
有趣的是,如果我只使用上面的第一行代码(删除第二行),它似乎将对象附加到堆栈上并正确显示! (只是实验)。这样做有什么问题吗?
-
不,一点问题都没有。
标签: qt dynamic qml stacklayout