Это дополнительный вопрос к этому , который уже исправлен.
В моей модели есть несколько пользовательских функций, которые вызываются из моего дерева. Например, в моем классе ItemModel
есть две пользовательские функции:
class ItemModel : public QAbstractItemModel
{
// ...
Q_INVOKABLE void addExpandedItem(const QModelIndex &index);
Q_INVOKABLE void removeExpandedItem(const QModelIndex &index);
}
Использование класса ItemModel
в качестве свойства sceneModel
в ParentClass
:
class ParentClass : public QObject
{
Q_OBJECT
Q_PROPERTY(ItemModel * sceneModel READ sceneModel CONSTANT)
private:
ItemModel *m_sceneModel;
}
В в моем дереве QML я вызываю / , вызывая такие пользовательские функции, как:
TreeView {
model: parentClass.sceneModel
selection: ItemSelectionModel {
model: parentClass.sceneModel
}
onExpanded: {
model.addExpandedItem(index) // Calling custom function
}
onCollapsed: {
model.removeExpandedItem(index) // Calling custom function
}
}
Теперь, когда я собираюсь фильтровать свою модель по QSortFilterProxyModel
Как описано в оригинальный вопрос , у меня возникают проблемы с вызовом этих пользовательских функций через QSortFilterProxyModel
модель прокси. Я получаю такие ошибки:
qrc:/.../...Tree.qml:191: TypeError: Property 'addExpandedItem' of object QSortFilterProxyModel(0x1f197c082c0) is not a function
Поэтому мне интересно, как я мог бы вызывать пользовательские функции моей модели через QSortFilterProxyModel
модель прокси.