Я пытаюсь использовать механизм удаления дерева QObject
, чтобы удалить список, и все QObject
s, которые хранятся в списке. Qt по-прежнему остается моей областью недели ...QObject установить QList как родительский с помощью setParent()
QList<QObject*>* list = new QList<QObject*>();
QObject* obj1 = new QObject();
QObject* obj2 = new QObject();
obj1->setParent(obj2);
obj2->setParent((QObject*)list);
У меня есть «ошибка сегментации» на последней строке. Нельзя использовать QList
в качестве родителя? Не наследует ли он от QObject
?
Edit:
Главный вопрос - можно удобно удалить список и список всех элементов без расширения QList
класса? Это нужно вызвать клиентом, чтобы он был простым.
Я хотел бы просто позвонить:
delete list;
и не
qDeleteAll(list);
delete list;
Самый большой вопрос, почему вы динамически выделяете весь список вообще. Почему это не просто '' QList list''? –
Невозможно с QList - вы могли бы использовать QSharedPointer. –