2016-04-08 44 views
0

我收到了一个关于调用进程的问题,并等待此程序关闭。Python - 进程调用和等待

它应该这样工作:

主程序和辅助程序。

主程序应该通过点击QPushButton来打开辅助程序。

然后出现辅助程序,您可以正常使用它。

在你关闭它的时候(因此通过退出窗口来终止进程)主程序也应该被终止。

我知道有模块“subprocess”,但我不明白如何使用它。这个文档有点啰嗦。

Thx for help :)

+0

为什么不干脆立即关闭第一程序中打开第二个之后?你真的需要在第二个程序运行时与第一个程序进行交互吗?如果是这样,这会使事情变得复杂,因为最简单的解决方案将阻止第一个进程,同时等待第二个进程完成。 – ekhumoro

+0

@ekhumoro嗯,这也可以。第一个程序就是执行者。第一个程序开始第二个程序后,第一个程序可以关闭。如果它打开或关闭,它不起任何作用。你会如何做到这一点? – freedome97

回答

0

你可以试试这个。

import subprocess 
    subprocess.call('ping 192.168.132.133') 

在Python 3.X中,您可以使用首选的subprocess.run()。 如果您想要运行更高级的案例()无法工作,您可以直接使用popen()。

0

如果您不需要保持第一程序的运行,也可以直接关闭它打开第二个程序后,立即:

if QtCore.QProcess.startDetached('prog2', ['arg1', 'arg2']): 
     QtWidgets.qApp.quit() 
    else: 
     print('ERROR: could not start prog2')