Название: QProcess: управление процессами Отправлено: 0...-5 от Декабрь 19, 2011, 07:12 Пишу два приложения: одно рассчитывает данные и записывает результаты расчетов в файл. Второе считывает данные из файла и занимается визуализацией. Встала задача после записи результатов в файл автоматически запускать программу визуализации. Решил использовать QProcess (раньше с этим классом не работал никогда). Возможны 2 ситуации: если визуализатор не запущен, то файл с данными можно передать через аргументы для запуска приложения. А что делать, если приложение уже запущено? Есть ли механизм, с помощью которого можно было бы передать визуализутору строку, содержащую имя файла и заставить его этот файл прочитать?
Всем спасибо! Название: Re: QProcess: управление процессами Отправлено: ddrtn от Декабрь 19, 2011, 08:07 Можно общаться с другим приложением через сокеты (не беру во внимание платформозависимое межпроцессное взаимодействие) по тсп через локал сокет. QProcess оставить для контроля работы процесса. Удобная штука для работы через сокеты JSON Rpc в библиотечке Qxt
Название: Re: QProcess: управление процессами Отправлено: 0...-5 от Декабрь 19, 2011, 08:24 Можно общаться с другим приложением через сокеты (не беру во внимание платформозависимое межпроцессное взаимодействие) по тсп через локал сокет. QProcess оставить для контроля работы процесса. Удобная штука для работы через сокеты JSON Rpc в библиотечке Qxt Честно говоря, не хотелось бы добавлять в проект работу с сетью...Благодаря Вам нашел класс QxtRpcService. Заинтриговала фраза "If all you want is a quick and easy solution to connect two Qt programs, QxtRpcService is for you." Нет какого-нибудь примера / опыта работы с ним, а то поиск молчит... Название: Re: QProcess: управление процессами Отправлено: Igors от Декабрь 19, 2011, 12:18 Недавно решал похожую задачу
http://www.prog.org.ru/index.php?topic=20018.msg135524#msg135524 (http://www.prog.org.ru/index.php?topic=20018.msg135524#msg135524) Есть ли механизм, с помощью которого можно было бы передать визуализутору строку, содержащую имя файла и заставить его этот файл прочитать? У меня приложение через определенный интервал времени проверяет не появился ли новый файл.Средства обмена данными (между приложениями) могут быть разными, но "синхронизироваться" придется Название: Re: QProcess: управление процессами Отправлено: ddrtn от Декабрь 19, 2011, 13:16 по поводу QxtRPCService.
В связываемых приложениях создаются объекты QxtRPCService, связанные с одним и тем же QIODevice. Далее прицепляются к ним сигналы и слоты любых объектов с помощью attachSignal и attachSlot. Связующим звеном тут выступает rpcFunction. Например, в первом приложении некоторый объект o1 вызывает сигнал readFile(QString fileName). Во втором приложении некоторый объект o2 имеет слот readFile(QString fileName). Для того, чтобы вызвать слот объекта o2 из объекта o1 нужно в первом приложении сделать Код: rpcService->attachSignal(o1, SIGNAL(readFile(QString)), "readFile_QString"); Код: rpcService->attachSlot("readFile_QString",o2, SLOTreadFile(QString))); Теоретически в качестве связующего QIODevice можно использовать и, например, файл. Но я не пробовал. На мой взгляд тут лучше QLocalSocket Название: Re: QProcess: управление процессами Отправлено: 0...-5 от Декабрь 19, 2011, 14:08 Всем большое спасибо!
|