如果出现问题,我想中止应用程序执行(使用 Qt 完成)并显示错误消息。
用中止();它不适合我。
你有什么建议吗?
最简单的方法是使用非零结果代码退出应用程序的事件循环,然后显示一个消息框。您可以手动重新旋转事件循环,也可以让消息框的静态方法为您完成。
#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"