如果我從Python GUI應用程序(PySide)啓動外部應用程序,是否有方法安裝'exited'信號,以便在用戶退出/關閉外部應用程序時進行通知?來自PySide中子進程的已退出信號
我明白有subprocess.poll()和subprocess.wait(),但我更多的是信號/插槽程序,而不是輪詢過程。如果還有其他選項,不使用子進程,我也很樂意實現它們。
這是我與此刻玩弄的辦法:
def eventFilter(self, source, event):
if event.type() == QtCore.QEvent.Close/ChildRemoved/etc.:
print("App closed!")
self.AppClosedHandler()
self.App = subprocess.Popen([r'C:\WINDOWS\SYSTEM32\some_application.exe'], shell=True)
self.App.installEventFilter(self)
可惜你不能在POPEN安裝一個事件過濾器。
這需要處理哪些平臺?你有任何控制其他應用程序的源代碼?爲什麼你不能使用'wait()'或'poll()'? – ekhumoro
這將不得不在Windows上運行,主要是64位8.1。我無法控制其他應用程序的源代碼,我只是簡單地調用應用程序.exe。我可以使用wait()或poll(),我只希望有一個很好的信號可用。按照下面的說法,我認爲QProcess.finished()信號就是我所追求的。 – jars121
請將您的解決方案作爲答案發布,而不是將其編輯到您的問題中。 – ThiefMaster