Russian Qt Forum
Ноябрь 01, 2024, 07:32
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Вопрос о передаче-приеме сигналов из одной программы в другую
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Вопрос о передаче-приеме сигналов из одной программы в другую (Прочитано 7307 раз)
Foss
Гость
Вопрос о передаче-приеме сигналов из одной программы в другую
«
:
Декабрь 01, 2009, 17:50 »
Добрый вечер!
вот такая ситуация-если кто сталкивался плизик отпишите.
В программе запущена вторая программа c помощью QProcess. Можно ли передать в QProcess какой то сигнал(строку, цифру, просто сигнал) и самое главное поймать его во второй программе, чтобы можно было в ней выполнить по этому сигналу нужные мне действия.
Записан
BRE
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #1 :
Декабрь 01, 2009, 17:55 »
Цитата: Foss от Декабрь 01, 2009, 17:50
Добрый вечер!
вот такая ситуация-если кто сталкивался плизик отпишите.
В программе запущена вторая программа c помощью QProcess. Можно ли передать в QProcess какой то сигнал(строку, цифру, просто сигнал) и самое главное поймать его во второй программе, чтобы можно было в ней выполнить по этому сигналу нужные мне действия.
Записать в stdin этому процессу нужное число/строку.
Записан
Foss
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #2 :
Декабрь 01, 2009, 17:59 »
Цитата: BRE от Декабрь 01, 2009, 17:55
Записать в stdin этому процессу нужное число/строку.
угум...спс...а как считать в программе этот сигнал, в тот момент когда стдин его посылает? создать что то или как? как "выципить" сигнал?)
Записан
BRE
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #3 :
Декабрь 01, 2009, 18:02 »
Цитата: Foss от Декабрь 01, 2009, 17:59
угум...спс...а как считать в программе этот сигнал, в тот момент когда стдин его посылает? создать что то или как? как "выципить" сигнал?)
А во втором процессе считать его из потока.
Почитай про stdin, stdout, stderr +
Detailed Description про QProcess.
Записан
Foss
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #4 :
Декабрь 03, 2009, 14:16 »
Цитата: BRE от Декабрь 01, 2009, 18:02
А во втором процессе считать его из потока.
Почитай про stdin, stdout, stderr +
Detailed Description про QProcess.
в том то и проблема, что не пойму, как определить момент, когда stdin примет данные, т.е. в какой момент можно считать из него...
Записан
spectre71
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #5 :
Декабрь 03, 2009, 14:47 »
Цитата: Foss от Декабрь 03, 2009, 14:16
Цитата: BRE от Декабрь 01, 2009, 18:02
А во втором процессе считать его из потока.
Почитай про stdin, stdout, stderr +
Detailed Description про QProcess.
в том то и проблема, что не пойму, как определить момент, когда stdin примет данные, т.е. в какой момент можно считать из него...
По таймеру пытаться читать из stdin
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #6 :
Декабрь 03, 2009, 14:53 »
Цитата: Foss от Декабрь 03, 2009, 14:16
в том то и проблема, что не пойму, как определить момент, когда stdin примет данные, т.е. в какой момент можно считать из него...
Упрощенно/утрированно stdin - это клавиатура. Когда с нее можно принять данные? Ясно когда пользователь что-то введет. Значит надо или стоять ждать или проверять по таймеру.
Записан
Foss
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #7 :
Декабрь 03, 2009, 15:14 »
т.е. сигнала нет... хотелось бы иметь что нить типа wroteToStdin(). Кстати, случайно нельзя в программе выцепить ее процесс (например, QProcess *proc = (QProcess*) qApp или еще какая нить бредятина типа этой;) а уже к полученному процессу прилепить сигнал...
Записан
BRE
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #8 :
Декабрь 03, 2009, 16:37 »
Цитата: Foss от Декабрь 03, 2009, 15:14
т.е. сигнала нет... хотелось бы иметь что нить типа wroteToStdin(). Кстати, случайно нельзя в программе выцепить ее процесс (например, QProcess *proc = (QProcess*) qApp или еще какая нить бредятина типа этой;) а уже к полученному процессу прилепить сигнал...
А эти сигналы QProcess?
void readyReadStandardError ()
void readyReadStandardOutput ()
Записан
spectre71
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #9 :
Декабрь 03, 2009, 16:49 »
Цитата: Foss от Декабрь 03, 2009, 15:14
т.е. сигнала нет... хотелось бы иметь что нить типа wroteToStdin(). Кстати, случайно нельзя в программе выцепить ее процесс (например, QProcess *proc = (QProcess*) qApp или еще какая нить бредятина типа этой;) а уже к полученному процессу прилепить сигнал...
Ответ - нет.
Записан
BRE
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #10 :
Декабрь 03, 2009, 17:30 »
Цитата: Spectre от Декабрь 03, 2009, 16:49
Ответ - нет.
Почему нет?
Цитировать
void QProcess::readyReadStandardError () [signal]
This signal is emitted when the process has made new data available through its standard error channel (stderr). It is emitted regardless of the current read channel.
See also readAllStandardError() and readChannel().
Цитировать
void QProcess::readyReadStandardOutput () [signal]
This signal is emitted when the process has made new data available through its standard output channel (stdout). It is emitted regardless of the current read channel.
See also readAllStandardOutput() and readChannel().
Записан
spectre71
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #11 :
Декабрь 03, 2009, 18:41 »
Цитата: BRE от Декабрь 03, 2009, 17:30
Цитата: Spectre от Декабрь 03, 2009, 16:49
Ответ - нет.
Почему нет?
Потому что он хотел от текущее приложение(QApplication) рассматривать как QProcess и пытаться как-то отлавливать stdin
Короче перечитай.
Записан
west
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #12 :
Декабрь 09, 2009, 09:51 »
Можно посадить оба процесса на локальный сокет (QLocalSocket) или канал (UNIX) и по нему обмениваться. Можно через общую память, но тогда нужно делать ее опрос в таймере. Короче все, что по теме "межпроцессное взаимодействие".
«
Последнее редактирование: Декабрь 14, 2009, 10:24 от west
»
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #13 :
Декабрь 09, 2009, 21:21 »
QDbus
Записан
niXman
Гость
Re: Вопрос о передаче-приеме сигналов из одной программы в другую
«
Ответ #14 :
Декабрь 09, 2009, 21:25 »
в ассистанте сказанно:
Цитировать
The QtDBus module is a Unix-only library
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...