【发布时间】:2019-02-08 04:43:22
【问题描述】:
我正在制作一个 QML 应用程序。我已经定义了一个 main.qml,我在其中添加了一个 StackView。我已经在这个“主”堆栈视图上加载了一个页面,但来自 main.qml。现在我需要从另一个文件(更具体地说,从我之前在此 stackview 上推送的页面之一)向这个 stackview 推送一些东西。
这是我做的。
main.qml
ApplicationWindow {
id: window
visible: true
width: 320
height: 568
title: qsTr("Stack")
header: ToolBar {
contentHeight: toolButton.implicitHeight
ToolButton {
id: toolButton
text: stackView.depth > 1 ? "\u25C0" : ""
font.pixelSize: Qt.application.font.pixelSize * 1.6
onClicked: {
if ( stackView.depth > 1 ) {
stackView.pop( )
} else {
...
}
}
}
Label {
text: stackView.currentItem.title
anchors.centerIn: parent
}
}
StackView {
id: stackView
initialItem: "ListaInventarios.qml"
anchors.fill: parent
}
}
ListaInventarios.qml
Page {
width: parent.width
height: parent.height
id: listaInventarios
title: "Inventarios"
ListView {
id: lvInventarios
anchors.fill: parent
model: ListModel { ... }
delegate: Component {
Item {
width: parent.width
height: 40
Column {
Text { text: nombreInventario; font.bold: true }
Text { text: fuenteDatos }
}
MouseArea {
anchors.fill: parent
onClicked: { lvInventarios.currentIndex = index }
onDoubleClicked: {
// HERE I NEED TO PUSH A NEW PAGE ON "stackView" (from main.qml)
}
}
}
}
highlight: Rectangle {
color: "lightblue"
radius: 5
}
focus: true
}
footer: ToolBar {
id: barraInferior
contentHeight: toolButton.implicitHeight
Row {
anchors {
horizontalCenter: parent.horizontalCenter
verticalCenter: parent.verticalCenter
}
ToolButton {
text: "Nuevo"
width: window.width / 2
onClicked: {
...
}
}
ToolButton {
text: "Borrar"
width: window.width / 2
onClicked: {
...
}
}
}
}
}
【问题讨论】: