Как получить доступ к текущему элементу ListView из qml

У меня есть приложение, которое хранит и редактирует заметки. Список заметок отображается в виде списка следующим образом:

Page {
        id: noteList
        title: i18n.tr("QNote")
        visible: false

        Column {
            anchors.fill: parent

            ListView {
                anchors.fill: parent
                model: notes
                delegate: ListItem.Standard {
                    text: Title
                    onClicked: editNote(NoteText, Title, modelData);
                    progression: true
                }
            }
        }
    }

function editNote(text, title, item) {
    pageStack.push(noteEdit, {title: title, text: text});
    handler.setActiveItem(item);
}

Элемент notes - это NoteListModel, который подклассирует QAbstractListModel и содержит NoteListItems. Я хотел бы сохранить выбранный в настоящий момент NoteListItem, чтобы я мог легко получить доступ к объекту Note внутри, когда пользователь хочет сохранить измененную заметку. Однако я не знаю, как получить доступ к вспомогательному NoteListItem из делегата qml. Модель данных, кажется, что-то еще. Есть ли способ сделать это? Если бы я мог обернуть объект Note в QVariant, я мог бы легко получить к нему доступ через роли, но когда я попробовал это так

QVariant NoteListItem::data(int role) {
    switch (role) {
    case Title:
        return note.getTitle();
    case NoteText:
        return note.getText();
    case NoteObject:
        return QVariant::fromValue(note);
    default:
        return QVariant();
    }
}

это привело к ошибке компилятора

qmetatype.h: 642: ошибка: неправильное применение sizeof к неполному типу QStaticAssertFailure

Или я должен попытаться получить доступ к выбранному элементу списка из кода поддержки? Есть ли способ для этого? У тебя есть идеи?

Спасибо за ваше время. С уважением, Питер

Ответы на вопрос(1)

Ваш ответ на вопрос