sharomet
@sharomet
Front-End

QT Creator как закрыть основное окно из диалогового?

Всем привет. Такой вопрос:
По клику на кнопку я открываю новое окно в котором 2 кнопки типа уверены ли вы что хотите выйти или нет. Если нажимает да то должно закрыться основное окно и естественно это диалоговое.
Как это сделать? Спасибо!
#include "exitmodal.h"
#include "ui_exitmodal.h"

exitModal::exitModal(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::exitModal){
    ui->setupUi(this);
}

exitModal::~exitModal(){
    delete ui;
}

void exitModal::on_pushButton_clicked(){
    //тут что то нужно написать, только вот не знаю что. close(); закрывает только это окно а мне нужно чтоб   //закрывалось и основное
}


Вызов окна
void MainWindow::on_exit_triggered(){
    exitmodal =new exitModal(this);
    exitmodal->show();

}

61ecd32d92644c6ea5a35aea5a1a6649.png
  • Вопрос задан
  • 5549 просмотров
Решения вопроса 1
tzlom
@tzlom
Ну, вообще вы можете вызвать parent()->close() т.к. назначаете родителем своё основное окно.
А вообще лучше не писать велосипед, а использовать QMessageBox
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tsarevfs
@tsarevfs Куратор тега C++
C++ developer
Все немного проще:
#include <QApplication>
#include <QMessageBox>
#include <QDebug>

// ...

void MyWidget::someSlot() {
  QMessageBox::StandardButton reply;
  reply = QMessageBox::question(this, "Test", "Quit?",
                                QMessageBox::Yes|QMessageBox::No);
  if (reply == QMessageBox::Yes) {
    qDebug() << "Yes was clicked";
    QApplication::quit();
  } else {
    qDebug() << "Yes was *not* clicked";
  }
}
Ответ написан
Ваш ответ на вопрос

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

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