我有一个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
项目推送到堆栈视图中。
答案 0 :(得分:2)
你必须在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})
}
}
}
}