You don't need to delete any of those, you just need to make sure that the class instance (that's the parent of everything in there) is deleted (either by allocating on stack or by setting a mainwindow parent that is allocated on stack or explicitly deleted if allocated on heap and it doesn't have another parent), so basically you need to delete only the QObjects that don't have a parent - those objects when deleted will delete their children. //of course for the classes that doesn't take part in QObject's parent-child relation-ship the standard C++ rules apply.

Anyway you can read more about parent-children in the documentation here