Как закрыть приложение Qt из другой формы?
пробовал свой сигнал создавать но не помогло. ниже немного кода:
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QString>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
private:
Ui::Dialog *ui;
signals:
void Ok(QString name);
void Exit();
private slots:
void on_pushButtonOk_clicked();
void on_pushButtonExit_clicked();
};
#endif // DIALOG_H
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLabel>
#include <dialog.h>
#include <QString>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QLabel labelAll;
QLabel labelRight;
QLabel labelError;
Dialog dialog; // вторая формочка
QString name;
char RigthReply;
int TotalQuest;
int CurrentQuest;
int theRight;
int theError;
void TotalQuests();
void GetQuest(int num);
private slots:
void SetName(QString s);
void on_pushButtonA_clicked();
void on_pushButtonB_clicked();
void on_pushButtonV_clicked();
void on_pushButtonG_clicked();
void on_action_3_triggered();
};
#endif // MAINWINDOW_H
связывание делаю в конструкторе основной формы: mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QObject::connect(&dialog, SIGNAL(Ok(QString)), this, SLOT(SetName(QString)));
QObject::connect(&dialog, SIGNAL(Exit()), this, SLOT(close()));
dialog.exec();
........
сам сигнал Exit() генерирую в деструкторе второй формы
Источник: Stack Overflow на русском