Russian Qt Forum
Октябрь 01, 2024, 02:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Подскажите простой способ нотификации между двумя Qt приложениями  (Прочитано 3623 раз)
antidotcb
Гость
« : Март 04, 2010, 16:23 »

Собственно проблема проста
Есть два одинаковых (с точки зрения пользователя) Gui Qt приложения.
На каждом виджете каждого приложения есть 1 кнопка.
Есть приложение хост с прямой линковкой слотов к сигналам.
Собствено нужен простой способ выполнять теже самые действия, если в другом приложении была нажата кнопка.
Буду рад за любые наводки, так как я нубик в Qt.
Записан
Amigo_sa
Гость
« Ответ #1 : Март 04, 2010, 17:16 »

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

1. DBus
2. QSharedMemory
3. QSystemSemaphore

Записан
Amigo_sa
Гость
« Ответ #3 : Март 04, 2010, 17:30 »

Столько нового для себя узнал о функциональности Qt... не слушайте чайника изабудьте про мой пост номер 2  Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Март 04, 2010, 18:13 »

Если оба application "на руках" - то и через DLL неплохо будет
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.