As such you don't need a parent.
But setting parent has some advantage in terms of garbage collection.
If you set a parent then when parent gets deleted, it will also delete all its children.
Following excerpt from the doc:
QObjects organize themselves in object trees. When you create a QObject with another object as parent, the object will automatically add itself to the parent's children() list. The parent takes ownership of the object; i.e., it will automatically delete its children in its destructor. You can look for an object by name and optionally type using findChild() or findChildren().