If the object does not have a parent you are in charge of creating it and destroying it:
QWidget* widget = new QWidget;
// ...
delete widget;
Now, at the moment in which that widget has a father, it is the father who is going to take charge of the life cycle of the widget ... When the father dies, the child will be automatically deleted:
QWidget* widget = new QWidget(parent);
// delete widget;
Of course you can always delete the widget manually, in this case the widget will be separated from the parent before erasing ... but beware, because if the parent has already deleted the child you can end up doing a double delete with dire consequences for your application:
QWidget* parent = new QWidget;
QWidget* child1 = new QWidget(parent);
QWidget* child2 = new QWidget(parent);
delete child1; // ok;
delete parent; // ok
delete child2; // double delete
So my advice is that whenever possible you let Qt manage the life of your objects.