I heard that the widgets should be allocated on the heap (using new), and then there are no needs to delete them (it is done automatically).
The docs on this are here. The reason they are most often allocated on the heap is to avoid problems caused by construction order of the members of the object tree. The stack is fine so long as you follow the rules, but why bother when you have a reliable alternative?
The reference @Etienne cited is here.