Я использую Qt для создания пользовательского интерфейса, и мне нужно, чтобы перед основным окном приложения отображалось диалоговое окно, чтобы пользователь мог выбрать некоторые файлы для загрузки и тому подобное.То, что у меня есть, является довольно простым основным:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
IView *view = new QtView();
view->showView();
int rc = a.exec();
std::cout << "exit" << std::endl;
return rc;
}
класс QtView является конкретной реализацией интерфейса IView.У него есть экземпляр mainwindow и экземпляр QDialog.В методе view-> showView () это то, что у меня есть:
void QtView::showView()
{
this->_configDialog->exec();
this->_mainAppWindow->show();
}
Работает нормально, открывается диалоговое окно, и когда пользователь нажимает кнопку ОК, возвращается exec и появляется главное окно.Проблема в том, что когда я закрываю главное окно, я получаю зомби-процесс, и приложение просто кажется зависшим, хотя все окна закрыты, и я никогда не получаю «выход», который я распечатываю в главном как раз перед возвращением основного.Я не уверен, что я делаю не так, но я получаю тот же результат, даже если я нажимаю на крестик, чтобы закрыть диалоговое окно, открывается главное окно, и как только оно закрывается, все просто висит там.
Если у кого-нибудь есть совет, это было бы круто.Спасибо.