我正在尝试处理 Qt 应用程序中的异常,我浏览了几篇文章,其中指出了重写 QApplication::notify 方法以在 Qt 中以有效的方式处理异常。我不确定应该在哪里添加这个重写方法。是mainwindow.h还是main.cpp?我在 MainWindow.h 中添加了以下函数:
bool
notify(QObject * rec, QEvent * ev)
{
try
{
return QApplication::notify(rec,ev);
}
catch(Tango::DevFailed & e)
{
QMessageBox::warning(0,
"error",
"error");
}
return false;
}
当我构建项目时,出现以下错误:
error: cannot call member function 'virtual bool QApplication::notify(QObject*, QEvent*)' without object
我是 C++ 和 Qt 的新手。您能让我知道如何实现此功能,以便以有效的方式处理所有异常并且应用程序不会崩溃。
这是 QApplication 对象的方法。为了重写notify方法,你必须继承QApplication
并在你的main()
你应该实例化一个类作为 Qt 应用程序
#include <QApplication>
class Application final : public QApplication {
public:
Application(int& argc, char** argv) : QApplication(argc, argv) {}
virtual bool notify(QObject *receiver, QEvent *e) override {
// your code here
}
};
int main(int argc, char* argv) {
Application app(argc, argv);
// Your initialization code
return app.exec();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)