Что именно PublishToDialog
? Я бы предположил, что это ваша собственная диалоговая реализация, которая наследует QDialog
. И учитывая эту строку:
pPublishToDialog->exec() != QDialog::Accepted
Это открывает диалог как modal dialog
. Модальное диалоговое окно блокирует и будет блокировать выполнение текущего потока, пока в диалоге не будет выполнено какое-либо действие. Вместо использования модального диалога, вы должны использовать немодальный диалог. Поскольку я до сих пор не уверен, что PublishToDialog
наследует QDialog
или что еще, я просто собираюсь предположить, что это так. Вот что вы могли бы сделать:
PublishToDialog* pPublishToDialog = new PublishToDialog(this);
// Make it a non-modal dialog
pPublishDialog->setModal(false);
// Connect it to a slot to handle whenever the user performs some action on it
QObject::connect(pPublishDialog, SIGNAL(finished()), this, SLOT(handleDialogAction());
pPublishDialog.show();
Вы должны будете внедрить handleDialogAction
в своем коде. В то же время вы можете захотеть сделать pPublishDialog
участником класса, так как он понадобится вам для доступа к QDialog::reuslt
в handleDialogAction
.