import QtQuick 2.6 Column { id: notifList ListModel { id: notificationModel ListElement { title: "Test notification" text: "Foo bar\n2000" timeout: 10000 } } Repeater { model: notificationModel Notification { id: notify title: model.title content: model.text width: notifList.width Timer { id: timer interval: model.timeout onTriggered: notificationModel.remove(index, 1) } Component.onCompleted: timer.start() } } add: Transition { NumberAnimation { targets: ViewTransition.targetItems; properties: "opacity"; from: 0.0; to: 1.0; } } move: Transition { NumberAnimation { targets: ViewTransition.targetItems; properties: "x"; } NumberAnimation { targets: ViewTransition.targetItems; properties: "y"; } } function addNotification(title, text, timeout) { var realTimeout = Number(timeout) >= 0 ? Number(timeout) : 5000 notificationModel.append({"title": title, "text": text, "timeout": realTimeout}); } }