Что такое приличная библиотека событий для приложений без GUI под * nix? (C ++) - PullRequest
2 голосов
/ 31 октября 2009

Во-первых, я сейчас использую Qt. Тем не менее, я хочу, чтобы программа в конечном итоге могла работать без среды графического интерфейса, оставляя в основном графические аспекты для конфигурации. Программа активно использует таймеры Qt и сигналы / слоты, частично для QtScript. Так что, если я хочу, чтобы он не работал, можно надеяться, что части Qt могут работать без среды графического интерфейса. Если нет, возможно, я рассмотрю другую реализацию Javascript, хотя QtScript очень удобен тем, как он интегрируется в ОО-структуру Qt и C ++. Во-первых, могут ли части Qt использоваться в среде без графического интерфейса, и если нет, то какие еще есть варианты, кроме библиотеки событий и планирования? Предпочтительно ОО дизайн.

Ответы [ 5 ]

4 голосов
/ 31 октября 2009

Если вы не используете модуль QtGui, вам не нужен графический интерфейс. QtCore и т. Д. Будет работать нормально.

3 голосов
/ 31 октября 2009

Вы смотрели на Boost.Signals библиотека? (Я сам этим не пользовался.)

2 голосов
/ 31 октября 2009

libsigc ++ имеет механизм сигналов и слотов, очень похожий на Qt, хотя это чистый C ++ (без дополнительного препроцессора). Он также может использоваться с gtkmm , привязкой C ++ для GTK +.

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

2 голосов
/ 31 октября 2009

libevent может быть тем, что вы ищете. Это в C, однако.

API libevent предоставляет механизм для выполнения функции обратного вызова, когда в дескрипторе файла происходит определенное событие или по истечении времени ожидания. Кроме того, libevent также поддерживает обратные вызовы из-за сигналов или регулярных таймаутов .

1 голос
/ 01 ноября 2009

Проект Poco предлагает два интересных решения:

Библиотека Boost сигналов тоже очень хороша, но это одна из немногих библиотек Boost, которую нужно собрать и связать.

...