QT grundlagen:
kurz QT ObjectHirarchie alles was du nach dem schema px = new QXXX(pParent .... ); allokierst, also mit einem QT Object als "parent", wird von qt selber beim zerstoeren deines Parents automatisch mitgeloescht.
Bis dahin bleiben fragmente deiner QT instanz auch im speicher. So kann es z.b. sein, das wenn ein fenster geschlossen wird, die zugehoerige QWidget Impl einfach auf nicht visible gesetzt wird, aber alles komplett im speicher bleibt. und bei ner erneuten anzeige der selben Instanz das ding nur noch auf visible gesetzt wird und die werte aktualisiert.
wobei dein code oben aber eher unnüblich ist. Fuer nichtmodale Dialoge, kommen eh selten vor, nimmt man bei der qt eher anderes als QDialog.
und modale Dialoge sind meist soweiso nur kurz am leben, deswegen instanzieiert man die gleich aufn stack ...
QMyDialog diag(this);
int iresult = diag.exec();
/// ab hier braucht man den dialog meist schon nimmer .... !!!
Ciao ...