Quote Originally Posted by navi1084 View Post
clear() will delete all the item.
No, it won't. It will only destroy pointers, not the objects behind them (same with removeAt() of course). Delete needs to be called explicitely on each item or, as already said, qDeleteAll() can be used.

Of course all that assumed one "deletes" objects behind pointers. If you have a list of objects then delete is not required as the destructor will be ran when using clear() or removeAt() (but I wouldn't call that "deleting" thus the whole post of mine).