А как насчет очевидного обработчика в main ()?
Я имею в виду ваше приложение имеет следующие строки:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow mainWin;
mainWin.show();
return a.exec();
}
Как насчет простой обёртки:
try{
QApplication a(argc, argv);
...
}
catch //catches any previously unhandled
{
//do graceful exit
}