以非阻塞方式使用QApplication

时间:2013-03-04 12:54:51

标签: qt

我想使用'connect',但如果我写

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

我在最后一个命令(a.exec)后被阻止。但是,如果我不使用此命令,则回调不起作用。

重要的是要说我不打开任何窗口。我想要工作的只是'connect'选项。

2 个答案:

答案 0 :(得分:2)

您无需致电app.exec()。你可以做的是定期打电话QCoreApplication::processEvents()。但是,除非您移植非Qt应用程序,否则不建议这样做。 Qt中的许多功能取决于事件循环,如果您尝试绕过它,您将遇到问题。如果可能的话,最好让自己的代码与事件循环一起使用。

答案 1 :(得分:1)

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

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

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