如果我从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