У меня есть следующие qml-файлы, main.qml создает элементы TestWindow.qml.Сигнал между QML с Repeater
Я хотел бы подключить сигнал в TestWindow.qml (нажмите на кнопку mySignalToMainWindow()) для функции в main.qml, testConnection().
main.qml
Window {
id: _component
property int instances: 3
width: 200
height: Screen.height/2
visible: true
Component.onCompleted: {
x = 40
y = 40
}
Repeater {
id: _windows
model: instances
TestWindow {
index: model.index
leftOffset: _component.width
}
}
Column {
Repeater {
model: instances
Button {
text: "Window " + index
onClicked:{ _windows.itemAt(index).window.raise();
}
}
}
}
function testConnection(){console.log("Subwindow To Main Window")}
}
И TestWindow.qml:
Item {
id: _windowItem
property int index
property int leftOffset
property alias window: _window
signal mySignalToMainWindow()
Window {
id: _window
visible: true
title: "SubWindowText " + index
Component.onCompleted: {
x = leftOffset
y = 40
width = Screen.width - leftOffset
height = Screen.height/2
}
Text {
id: windowText
text: qsTr("SubWindowText")
}
Button {
text: "SubWindow " + index
onClicked: {console.log("TestWindow::Button onClicked "+_window);
_windowItem.mySignalToMainWindow();
}
}
}
}
Я испытал те два:
How to bind to a signal from a delegate component within a ListView in QML и How to access dynamically/randomly loaded Repeater items in QML?
без успеха. Итак, как это сделать?
Thanks