Может быть способ сделать это изначально с Qt - я немного покопался в документации по QKeySequence, прежде чем сдаться, но вы можете просто использовать signal
. В данный момент на моей машине не установлена программа Qt / C ++, но у меня есть привязки Python.
import sys, signal
from PyQt4 import QtGui
app = QtGui.QApplication(sys.argv)
signal.signal(signal.SIGINT, signal.SIG_DFL)
sys.exit(app.exec_())
Это работает и закроет приложение, когда я сделаю Ctrl-C
. Поэтому я считаю, что ваше приложение может адаптировать этот код, и в итоге это будет выглядеть примерно так:
#include <signal.h>
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
... // parse command line options
if (no_gui) {
signal(SIGINT, SIG_DFL);
}
...
return app.exec();
}
К сожалению, я не могу скомпилировать это, поэтому, возможно, потребуется несколько исправлений, но это должно дать вам общее представление. Используя обработчик SIG_DFL
, вы указываете своей программе использовать действие по умолчанию, связанное с Ctrl-C
.