Создание основанного на Qt графического интерфейса для приложения libevent - PullRequest
2 голосов
/ 19 мая 2011

В настоящее время я активно использую libevent для сетевого программирования на C / C ++, и мне нравится, как легко я могу создать приложение на основе событий, не беспокоясь о том, нужно ли мне использовать select, poll, epoll, kqueues и т. Д.made только для текста, и теперь я смотрю на Qt / QML, чтобы создать графический интерфейс для моих существующих сетевых приложений.

Я просто не знаю, как я могу интегрировать их в одно приложение, так как оба libeventи qt хочет запускать свои собственные циклы событий.Нужно ли мне смотреть на запуск каждого из них в отдельном потоке (графический интерфейс в одном потоке и libevent-backend в другом), или мне не хватает чего-то очень простого?: -)

Спасибо, Нина

Ответы [ 2 ]

0 голосов
/ 14 мая 2013

Реализация QAbstractEventDispatcher, который оборачивает libevent.

0 голосов
/ 19 мая 2011

Вы можете вызвать QApplication :: processEvents из таймера простоя в цикле libevent (или, возможно, наоборот, предполагая, что libevent имеет нечто подобное).

OTOH, наличие двух потоков не может быть , что плохо, поскольку Qt разрешает соединения сигналов / слотов (а также вызовы общих методов через QMetaObject :: invokeMethod ) между потоками.

Это зависит от того, насколько тесной должна быть интеграция между libevent и графическим интерфейсом Qt в вашем приложении.

...