2) When a QObject are destroyed, it delete all children. You have not need to delete them explicitly
Thanks for that, I wasn't aware of it!

For the 1) I suggest you to define a difficulty() public methods that returns m_difficulty and call it after exec from calling code
I would definitely do that, if exec() didn't cause a segmentation fault

As some additional information, I tried to recreate the error with a very small program consisting of only a button with the same dialog window. In this case there was no seg fault and the window was displayed successfully. Could the complication of my program's main window (4 QDockWidgets and a QStatusBar) be causing the seg fault in my main program? Otherwise I used the same code and called it in the same way, so I'm getting more confused...