使用Visual Studio / Qt中止执行

时间:2013-10-17 12:26:00

标签: c++ visual-studio-2010 qt

我想中断一个应用程序执行(使用Qt完成),并显示错误消息,以防出现问题。

with abort();它没跟我合作。

你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用非零结果代码退出应用程序的事件循环,然后显示一个消息框。您可以手动重新旋转事件循环,也可以让消息框的静态方法为您完成。

#include <QPushButton>
#include <QMessageBox>
#include <QApplication>

QString globalMessage;

class Failer : public QObject {
    Q_OBJECT
public:
    Q_SLOT void failure() {
        globalMessage = "Houston, we have got a problem.";
        qApp->exit(1);
    }
};

int main(int argc, char ** argv) {
    QApplication app(argc, argv);
    QPushButton pb("Fail Me");
    Failer failer;
    failer.connect(&pb, SIGNAL(clicked()), SLOT(failure()));
    pb.show();
    int rc = app.exec();
    if (rc) {
        QMessageBox::critical(NULL, "A problem has occurred...", 
                              globalMessage, QMessageBox::Ok);
    }
    return rc;
}

#include "main.moc"