QObjects store children as a list containing QObject pointers. When you delete the object or QObject destructor is called, it calls delete on all its children.
Now you can see the scenario in your case where you allocate QObjects on a stack and it does have parent. When parent is destructed , delete is called on object on stack which crashes your program.
edit: I was bit late(jpn answered first) but atleast better late than never![]()
Bookmarks