The dialog gets destroyed before it shown (add progress.show() also). You can make the dialog member variable of MainWindow and create dialog with new and delete it when dialog is closed. E: Or add dialog.exec();