Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: antidotcb от Март 04, 2010, 16:23



Название: Подскажите простой способ нотификации между двумя Qt приложениями
Отправлено: antidotcb от Март 04, 2010, 16:23
Собственно проблема проста
Есть два одинаковых (с точки зрения пользователя) Gui Qt приложения.
На каждом виджете каждого приложения есть 1 кнопка.
Есть приложение хост с прямой линковкой слотов к сигналам.
Собствено нужен простой способ выполнять теже самые действия, если в другом приложении была нажата кнопка.
Буду рад за любые наводки, так как я нубик в Qt.


Название: Re: Подскажите простой способ нотификации между двумя Qt приложениями
Отправлено: Amigo_sa от Март 04, 2010, 17:16
Я подумал, что вашу задачу можно решить с помощью локальных сокетов (QLocalSocket). Посмотрите пример examples\ipc\localfortuneserver
В общем, в каждом приложении нужно поднимать сервер, и столько клиентов, сколько приложений вы хотете открывать. Проблема, что каждый сервер нужно идентифицировать уникальным ID. Можно, например, при запуске каждого приложения стучаться на сервер с известным именем, если он открыт, то сделать запрос открытых серверов, сгенерить новое имя и сообщить первому серверу, что запущена еще 1 копия приложения с новым именем сокета. Дальше эти имена рассылаются всем известным приложениям. И при каждом событии всем рассылаются сигналы о действиях.
Вот такая история...


Название: Re: Подскажите простой способ нотификации между двумя Qt приложениями
Отправлено: BRE от Март 04, 2010, 17:18
1. DBus
2. QSharedMemory
3. QSystemSemaphore



Название: Re: Подскажите простой способ нотификации между двумя Qt приложениями
Отправлено: Amigo_sa от Март 04, 2010, 17:30
Столько нового для себя узнал о функциональности Qt... не слушайте чайника изабудьте про мой пост номер 2  :)


Название: Re: Подскажите простой способ нотификации между двумя Qt приложениями
Отправлено: Igors от Март 04, 2010, 18:13
Если оба application "на руках" - то и через DLL неплохо будет