@badproger12years

Как правильно закрыть окно?

У меня есть два окна, первое окно это окно политика конфидициальности. Второе окно открывается при соглашение на первое окно. Мне нужно что бы первое окно закрывалось сразу после открытия второго. Я пробовал через QApplication::quake и через имяпервогокласса::close().
Но возникает вторая проблема, второе окно не успевает открыться.
Я и в начало кода передвигал close и в конец и в середину, Ничего не помогло.
Каким образом БЕЗОПАСНО ЗАКРЫТЬ окно и успев открыть второе окошко.
  • Вопрос задан
  • 292 просмотра
Решения вопроса 2
Zifix
@Zifix Куратор тега Qt
Barbatum
Почитайте любую книгу по Qt. Сэкономите кучу времени и найдёте ответы ещё на тысячу подобных вопросов.
Ответ написан
Комментировать
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Как-то так
#include <QApplication>
#include <QMessageBox>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QMainWindow mainWindow;

    auto res = QMessageBox::question(&mainWindow, QMainWindow::tr("Just in case"),
                                     QMainWindow::tr("Are you sure?"));
    if (res == QMessageBox::Yes) {
        mainWindow.show();
        return a.exec();
    } else {
        return -1;
    }
}

Смысл в том, что у вас первое окно -- это модальный диалог (наследник QDialog, допустим). У него есть метод exec обычно, который возвращает результат (например согласился пользователь или нет). На основании результата и решайте, что делать дальше: показать окно или выйти из программы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы