У меня есть QApplication, который, в зависимости от параметров командной строки, иногда на самом деле не имеет окна графического интерфейса, а просто работает без GUI. В этом случае я хочу закрыть его изящно, если CTRL-C был поражен. В основном мой код выглядит следующим образом:
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
... // parse command line options
if (no_gui) {
QObject::connect(&app, SIGNAL(unixSignal(int)),
&app, SLOT(quit()));
app.watchUnixSignal(SIGINT, true);
app.watchUnixSignal(SIGTERM, true);
}
...
return app.exec();
}
Однако это не работает. CTRL-C кажется пойманным (приложение не убивается), но оно также не выходит. Что мне не хватает?