我想使用“连接”,但如果我写
QApplication a(argc, argv);
connect ....
a.exec();
我在最后一个命令后被阻止(a.exec
)之后我被阻止了。但是如果我不使用这个命令,那么回调就不起作用。
重要的是说我不打开任何窗口。我想要工作的只是“连接”选项。
我想使用“连接”,但如果我写
QApplication a(argc, argv);
connect ....
a.exec();
我在最后一个命令后被阻止(a.exec
)之后我被阻止了。但是如果我不使用这个命令,那么回调就不起作用。
重要的是说我不打开任何窗口。我想要工作的只是“连接”选项。
你不必打电话app.exec()
。您可以做的是定期调用QCoreApplication::processEvents()
. 但是,除非您要移植非 Qt 应用程序,否则不建议这样做。Qt 中的很多功能都依赖于事件循环,如果你试图绕过它,就会遇到问题。如果可能的话,让您自己的代码与事件循环一起工作是一个更好的主意。
如果您不使用 GUI,请使用 QCoreApplication 而不是 QApplication。
对不起,不是一个好的答案。
您应该考虑将您的连接移动到 Qt 主事件循环中的某些内容中。如果这真的不是一个选项,您可能需要分拆另一个运行 QCoreApplication 调用的线程。