2

我目前大量使用 libevent 进行 C/C++ 网络编程,我喜欢我可以轻松地制作基于事件的应用程序,而不必担心是否需要使用 select、poll、epoll、kqueues 等。我制作的应用程序是文本-only,现在我正在寻找 Qt/QML 为我现有的网络应用程序制作 GUI。

我只是不知道如何将它们集成到一个应用程序中,因为 libevent 和 qt 都想运行它们自己的事件循环。我是否需要查看在自己的线程中运行每个线程(一个线程中的 gui 和另一个线程中的 libevent-backend),还是我错过了一些非常简单的东西?:-)

谢谢,尼娜

4

2 回答 2

0

实现包装 libevent 的 QAbstractEventDispatcher。

于 2013-05-14T18:46:00.953 回答
0

您可以从 libevent 循环中的空闲计时器调用QApplication::processEvents(或者可能反过来,假设 libevent 有类似的东西)。

OTOH,拥有两个线程可能不是那么糟糕,因为 Qt 允许线程之间的信号/插槽连接(以及通过QMetaObject::invokeMethod的一般方法调用)。

这取决于 libevent 和 Qt 的 GUI 之间的集成需要在您的应用程序中的紧密程度。

于 2011-05-19T12:54:34.160 回答