Интерактивный Python GUI - PullRequest
       12

Интерактивный Python GUI

2 голосов
/ 09 января 2010

Python для меня был довольно ухабистым, потому что в последний раз, когда я создавал клиент с графическим интерфейсом, он зависал при порождении процесса, вызове сценария оболочки и вызове внешнего приложения.

С тех пор это была моя главная проблема с Python, и теперь я нахожусь в новом проекте, может ли кто-нибудь дать мне указатели и дать совет, чтобы приложение Python с GUI-интерфейсом оставалось интерактивным при порождении другого процесса?

Ответы [ 2 ]

4 голосов
/ 09 января 2010

Самый простой (не обязательно «лучший» в абстрактном смысле): порождает подпроцесс в отдельном потоке, передавая результаты обратно в основной поток через экземпляр Queue.Queue - основной поток должен периодически проверять эту очередь, чтобы увидеть, результаты еще не получены, но периодический опрос не сложно организовать в любом цикле событий.

2 голосов
/ 09 января 2010

Ваш основной поток графического интерфейса будет зависать, если вы запускаете процесс и ждете его полностью. Часто вы можете просто использовать подпроцесс и опрашивать его время от времени для завершения, а не wait для завершения. Это предотвратит зависание вашего графического интерфейса.

...