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