在QT的界面类的构造过程中,如果想退出整个程序,暴力的做法是调用exit(-1)进行,另外一种不是那么暴力的方式如下:
dialog.h
#ifndef DIGLAOG_H_
#define DIGLAOG_H_
#include <QDialog>
class dialog : public QDialog
{
public:
dialog (QWidget *parent = 0);
virtual ~dialog ();
private:
};
#endif
dialog.cpp
#include "dialog.h"
#include <QTimer>
#include <QApplication>
dialog::dialog(QWidget *parent)
:QDialog(parent)
{
qDebug("dialog::dialog()");
QTimer::singleShot(0, qApp, SLOT(quit()));
}
dialog::~dialog()
{
qDebug("dialog::~dialog()");
}
main.cpp
#include <QApplication>
#include "dialog.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
dialog d;
return d.exec();
}
采用的方式是:
QTimer::singleShot(0, qApp, SLOT(quit()));
运行结果:
dialog::dialog()
dialog::~dialog()