LINUX.ORG.RU

Qt и подобие демона


0

1

Привет,

Есть приложение с GUI интерфейсом(А) которое может читать вывод другого приложения(так сказать принимать сообщения). При этом пока сообщение не пришло, приложение А активно и может как то управляться пользователем

Сообщения приходят в разное время. Когда приходит сообщения, в этот момент в приложении А должен выполниться код и отобразиться результат.

Ткините пожалуйста через что такое можно сделать?

Как я понимаю нужно использовать fork для постоянной прослушки?

*QThread - читаем в отдельном потоке, пришло событие, высылаем сигнал в UI *Открыть вывод другого приложения как файл, QIODevice::readyRead

batbko
()

qt

fork

мне бы такое только под веществами в голову пришло бы.

nanoolinux ★★★★
()

Для начала определись, как будет идти обмен между приложениями, а потом man QThread, man signals/slots

solovey ★★
()

боюсь тут банальный QProcess нужен.

MikeDM ★★★★★
()

Для выполнения другого приложения и чтения вывода есть упомянутый выше QProcess, между прочим, изначально асинхронный.

Так же на всякий случай напомню, что приложение с GUI обычно имеет главный поток, в котором выполняется цикл прослушивания сообщений и вызываются нужные методы у виджетов. И вычислять что-то прямо в методах виджетов - моветон, любую задачу дольше 1 мс лучше выполнять в отдельном потоке, как это делает QProcess.

У QProcess есть сигналы finished и error - к ним и надо подцепиться. В документации не сказано, но видимо вызывается только один из них - либо finised, либо error. Когда один из сигналов приходит, тогда и нужно отобразить результат.

P.S. приложение (А) есть, а где (Б)? ;)

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

Благодарю, буду идти в этом направлении:)

Antonavt
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.