QT在构造函数中退出程序

原地址:http://www.tuicool.com/articles/RZnYze

在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() 

posted @ 2014-01-26 10:30  蓝夜  阅读(1256)  评论(0编辑  收藏  举报