Как я могу запустить программу с графическим интерфейсом из Python, но завершить процесс, когда пользователь закрывает окно? - PullRequest
0 голосов
/ 09 марта 2019

Я хочу написать скрипт на Python, который будет запускать программу с графическим интерфейсом (например, запустить двоичную программу с subprocess.run или os.system или чем-то еще). Сценарий не должен блокироваться, пока программа не будет завершена, он должен запустить его и продолжить работу.

Я делаю это в Ubuntu.

Я пытался subprocess.Popen, но если я бегу, скажем subprocess.Popen("gedit"), я получаю странное поведение. Если я открою системный монитор Ubuntu (диспетчер процессов), я вижу, что процесс gedit появляется, когда я запускаю скрипт, и открывается само окно gedit. Но если я закрою окно, процесс не завершится в системном мониторе. Процесс остается там до тех пор, пока не завершится мой скрипт на python.

Как я могу получить поведение, которое я хочу? Единственное, о чем я могу думать сейчас, это просто вызвать subprocess.run в другом потоке Python, это единственное, что я могу сделать?

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Попробуйте использовать subprocess.call.Это работало для меня раньше.

subprocess.call(['command', 'arguments'])

Программа должна завершиться, когда окно закрыто.

0 голосов
/ 09 марта 2019

Вы должны уничтожить созданный вами подпроцесс перед выходом из программы.

Попробуйте это .

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