QObject
트리 삭제 메커니즘을 사용하여 목록을 삭제하고 목록에 저장된 QObject
개를 모두 사용하려고합니다. Qt는 여전히 내 주간 지역입니다 ...QObject setParent()를 사용하여 QList를 부모로 설정했습니다.
QList<QObject*>* list = new QList<QObject*>();
QObject* obj1 = new QObject();
QObject* obj2 = new QObject();
obj1->setParent(obj2);
obj2->setParent((QObject*)list);
마지막 줄에는 "Segmentation fault"가 있습니다. QList
을 부모로 사용할 수 없습니까? QObject
에서 상속되지 않습니까?
편집 :
주요 질문 -가 편리 목록 및 QList
클래스를 확장하지 않고 모든 목록 요소를 삭제할 수 있습니까? 이것은 클라이언트가 간단하게 호출해야합니다.
단순히 전화 싶습니다
delete list;
및 QObject
에서하지
qDeleteAll(list);
delete list;
가장 큰 질문은 동적으로 전체 목록을 할당하는 이유입니다. 왜''QList list''가 아닌가? –
QList에서는 불가능합니다. QSharedPointer를 사용할 수도 있습니다. –