ios — просмотр списка qml с использованием c ++ nest listmodel при извлечении из стека

у меня есть структура списка моделей гнезд C ++, как это,

class ListModel : public AbstractListModel
{
public:
.....
private:
QList<QObject*> m_List;
}

class TrendListModel : public ListModel
{
public:
.....
void addTrendData(.....)
{
TrendData* trendData = new TrendData(....);

QQmlEngine::setObjectOwnership(trendData, QQmlEngine::CppOwnership);

beginInsertRows(QModelIndex(), rowCount(), rowCount());
m_List << trendData;
endInsertRows();
}

void addImage(int row, QString path)
{
if(row < 0 || row >= rowCount())
{
qWarning() << "addImage to invalid trendData pointer!"return;
}
TrendData* trendData = qobject_cast<TrendData*>(m_List.at(row));
trendData->addImage(...., path);

emit dataChanged(index(row), index(row));
}
}

class TrendData : public QObject
{
public:
.....
{
m_ImageListModel = new ImageListModel(this);
QQmlEngine::setObjectOwnership(m_ImageListModel, QQmlEngine::CppOwnership);
}
void addImage(..., path)
{
m_ImageListModel->addImage(..., path);
}
private:
ImageListModel* m_ImageListModel;
}

class ImageListModel : public ListModel
{
void addImage(..., path)
{
Image* image = new Image(path, this);

QQmlEngine::setObjectOwnership(image, QQmlEngine::CppOwnership);
beginInsertRows(QModelIndex(), rowCount(), rowCount());
m_List << image;
endInsertRows();
}
}

ListView{
model: trendListModel //from setContextProperty()

delegate{
.......
ListView{
model: imageListModel //return from trendListModel's data function
}
}
}

Я добавляю экземпляр TrendListModel в просмотр списка qml, правильно делаю предварительный просмотр, но когда я вытаскиваю страницу qml из стека, она вылетает на ios, но отлично работает на android. Отчет об аварийном сбое, как показано ниже:

скриншот аварии

1

Решение

Задача ещё не решена.

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

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

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