Найти - Пользователи
Полная версия: Получение и отправка данных в программу на wxPython
Начало » GUI » Получение и отправка данных в программу на wxPython
1
Lexander
Все привет.
Взял отсюда код (пример работает) и пытаюсь через subprocess.Popen запустить простейшее приложение, написанное на wxPython.
Но не могу понять как сделать, чтобы дочерняя программа на wxPython обрабатывала входящие сообщения от родительской и передавала обратно ответы.
clopomor
таке краще через IPC/XML-RPC/Socket робити …
shiza
В общих словах - надо чтоб твоя программа читала stdin и писала ответ в stdout.
Это вполе нормальная практика - так например mplayer работает со всеми своими GUI.
Lexander
clopomor
таке краще через IPC/XML-RPC/Socket робити …
Думаю, занадто важкі технології у порівнянні з pipe. А так - одне й те саме.
shiza
В общих словах - надо чтоб твоя программа читала stdin и писала ответ в stdout.
Это вполе нормальная практика - так например mplayer работает со всеми своими GUI.
Это то понятно. Теорию я проштудировал, но вот не нашел ни одного практического примера неоднократного чтения из stdin и записи в stdout.
Есть примеры передачи данных сразу после запуска. Но они мне не подходят, т.к. мое дочернее приложение должно продожать работу и проверять нет ли новых сообщений от родительского, на которые нужно ответить. Кроме того, дочернее приложение имеет право само иницировать связь с родительским, отправив ему через stdout определенную команду.
Насколько я понимаю из теории, для такой связи в дочернем wxPython-приложении нужно организовать отдельный поток, в котором периодически считывать stdin. Но теория - теорией, а с практикой у меня туговато: я начинающий питонер :).

Если не сложно, не могли бы вы набросать небольшой примерчик.
Viper
http://code.activestate.com/recipes/440554/
Lexander
Viper
Именно оттуда (см. мой 1 пост) я код взял для вызова своей дочерней программы, написанной на wxPython. Т.е. вместо
('cmd', ('dir /w', ‘echo HELLO WORLD’), ‘\r\n’)
у меня вызывается моя программа.
Я даже могу от нее что-то получить сразу после запуска. Но в описываемом выше режиме постоянного общения этого я сделать не могу (не умею) :(
И примеров не нашел, хотя пеперыл кучу сайтов. В том числе code.activestate.com/recipes/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB