2016-04-08 47 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')