main.qml:
import QtQuick 2.11
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
ApplicationWindow {
id: window
x: 200
y: 200
visible: true
Component {
id: firstViewComponent
FirstView {
id: firstView
}
}
StackView {
id: stackView
anchors.fill: parent
Component.onCompleted: push(firstViewComponent)
}
Timer {
interval: 1000
running: true
onTriggered: stackView.pop()
}
}
FirstView.qml:
Rectangle {
id: view
StackView.onDeactivating: console.log('view: view is deactivating')
ListModel {
id: aModel
ListElement {
name: 'Element 0'
}
ListElement {
name: 'Element 1'
}
}
ListView {
id: listView
model: aModel
delegate: Rectangle {
id: listViewDelegate
Connections {
target: view.StackView // <---- DOESN'T WORK
onDeactivating: console.log('delegate ' + index + ': needs to do some housekeeping now')
}
}
}
}
У меня есть представление, которое создается StackView в main.qml. StackView присоединяет сигнал StackView.onDeactivating к представлению. Есть ли способ прикрепить к сигналу объект, отличный от того, к которому прикреплен сигнал? Мне нужно сделать некоторую очистку в listViewDelegate, когда представление выскочило.
Я мог бы, чтобы view испустил свой собственный сигнал, и чтобы делегат ответил на этот сигнал. Но что мне интересно, так это то, есть ли способ подключения к подключенному сигналу: StackView.onDeactivating из другого объекта (listViewDelegate).