1

我想使用“连接”,但如果我写

QApplication a(argc, argv);
connect ....
a.exec();

我在最后一个命令后被阻止(a.exec)之后我被阻止了。但是如果我不使用这个命令,那么回调就不起作用。

重要的是说我不打开任何窗口。我想要工作的只是“连接”选项。

4

2 回答 2

2

你不必打电话app.exec()。您可以做的是定期调用QCoreApplication::processEvents(). 但是,除非您要移植非 Qt 应用程序,否则不建议这样做。Qt 中的很多功能都依赖于事件循环,如果你试图绕过它,就会遇到问题。如果可能的话,让您自己的代码与事件循环一起工作是一个更好的主意。

于 2013-03-04T14:05:17.330 回答
1

如果您不使用 GUI,请使用 QCoreApplication 而不是 QApplication。

对不起,不是一个好的答案。

您应该考虑将您的连接移动到 Qt 主事件循环中的某些内容中。如果这真的不是一个选项,您可能需要分拆另一个运行 QCoreApplication 调用的线程。

于 2013-03-04T13:07:56.360 回答