Ошибка при попытке установить QQmlListProperty

Я создаю простое приложение для Sailfish OS с использованием C ++ и QML.
Я пытаюсь выставить свой слой базы данных в QML через QQmlListProperty — однако у меня возникают проблемы. Я, вероятно, настроил это неправильно — но я не могу понять, где.

Это мой установочный код:

QQmlListProperty<Note> NoteList::notes() {
return QQmlListProperty<Note>(this, &_notes, &append, &size, &at, &clear);
}

Вот реальные методы, которые я пытаюсь передать в свойство списка:

static void append(QQmlListProperty<Note> *property, Note* value) {
NoteList *list = (NoteList*) property;
list->addNote(value);
}

static void clear(QQmlListProperty<Note> *property) {
NoteList *list = (NoteList*) property;
list->clearNotes();
}

static int size(QQmlListProperty<Note> *property) {
NoteList *list = (NoteList*) property;
return list->countNotes();
}

static Note* at(QQmlListProperty<Note> *property, int index) {
NoteList *list = (NoteList*) property;
return list->noteAt(index);
}

Когда я компилирую — я получаю это:

/Users/markus/Documents/SailfishOS/build-SilicaNote-MerSDK_SailfishOS_i486_x86-Debug/notelist.o:-1: In function `QQmlListProperty'
/usr/include/qt5/QtQml/qqmllist.h:72: error: undefined reference to `NoteList::append(QQmlListProperty<Note>*, Note*)
File not found: /usr/include/qt5/QtQml/qqmllist.h
/usr/include/qt5/QtQml/qqmllist.h:72: error: undefined reference to `NoteList::at(QQmlListProperty<Note>*, int)'
File not found: /usr/include/qt5/QtQml/qqmllist.h
/usr/include/qt5/QtQml/qqmllist.h:72: error: undefined reference to `NoteList::clear(QQmlListProperty<Note>*)'
File not found: /usr/include/qt5/QtQml/qqmllist.h
:-1: error: collect2: ld returned 1 exit status

Кто-нибудь знает, что я делаю не так?

Спасибо!

1

Решение

Получил это работает:

Пришлось удалить static в файле cpp и добавьте правильный идентификатор класса:

void NoteList::append(QQmlListProperty<Note> *property, Note* value)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]