如何以递归方式推送到StackView QML?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何以递归方式推送到StackView QML?相关的知识,希望对你有一定的参考价值。
每次点击一个按钮,我都会有一个StackView
和一个项目。它只在我第一次按下按钮时起作用,我可以理解父子关系存在问题。但是如何解决呢?
main.qml
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
Window {
visible: true
width: 640
height: 480
StackView{
id: stackView
anchors.fill: parent
initialItem: Item {
width: parent.width
height: parent.height
FirstLevel {
myModel: 5
onButtonClicked: {
stackView.push("qrc:/FirstLevel.qml", {myModel: 5})
}
}
}
}
}
FirstLevel.qml
import QtQuick 2.0
import QtQuick.Controls 1.4
Column {
property var myModel
signal buttonClicked()
Repeater {
model: myModel
Button {
text: model.index
onClicked: {
buttonClicked()
}
}
}
}
更新我
每次我点击FirstLevel.qml
项目中的按钮时,我想将FirstLevel.qml
项目推入stackview。
答案
你必须在FirstLevel.qml中进行推送:
main.qml
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
Window {
visible: true
width: 640
height: 480
StackView{
id: stackView
anchors.fill: parent
initialItem: Item {
width: parent.width
height: parent.height
FirstLevel {
myModel: 5
}
}
}
}
FirstLevel.qml
import QtQuick 2.0
import QtQuick.Controls 1.4
Column {
property var myModel
Repeater {
model: myModel
Button {
text: model.index
onClicked: {
stackView.push("qrc:/FirstLevel.qml", {myModel: myModel})
}
}
}
}
以上是关于如何以递归方式推送到StackView QML?的主要内容,如果未能解决你的问题,请参考以下文章