⚠️ Forum Maintenance: Feb 6th, 8am - 14pm (UTC+2)

[Solved] Receiving signals emitted by Repeater item

  • Is there a way to receive a signal from an item created by a Repeater in the QML itself? Consider the following simplified example:

    @Rectangle {

    Repeater {
    model: cppModel
    delegate: SimpleDelegate{}

    // SimpleDelegate.qml

    signal itemSignal(int index)


    Is there a way to receive itemSignal somewhere where I can then operate on the item and, most likely, all the other items in the repeater as well? So far I haven’t been able to figure out how to handle this scenario without involving the C++ model.

  • I think you can accomplish that using connect (http://doc.qt.digia.com/qt/qmlevents.html#connecting-signals-to-methods-and-signals).

    Here is my guess:

    @delegate: SimpleDelegate{
    Component.onCompleted: {

  • Certainly. You might want to read up on how to do signal and slot connections with [removed]

    The most relevant example is this one:
    Rectangle {
    id: forwarder
    width: 100; height: 100

     signal send()
     onSend: console.log("Send clicked")
     MouseArea {
         id: mousearea
         anchors.fill: parent
         onClicked: console.log("MouseArea clicked")
     Component.onCompleted: {


    Just connect your itemSignal to a function in the SimpleDelegate::onCompleted handler. (or alternatively in the Repeater::onItemAdded handler)

  • Yes, thank you! I was under the mistaken impression that I needed Connections items to implement signals and slots in QML. This solution works perfectly.

Log in to reply