我的工作要求我将我们的程序(也就是别人写的)从Windows移植到Linux。我已经能够成功运行Python脚本和Python脚本在Linux中调用的可执行程序。Python GUI不关闭子进程
的Python脚本创建GUI,和脚本使用下面的命令,当用户完成关闭GUI:
window.connect("destroy", self.close_application)
这是在脚本的def __init__(self):
部分。该GUI创建它调用可执行文件的过程如下:
MY_EXE = 'My_Program'
EXE_ARGS = "-d -l"
sh = MY_EXE + ' ' + EXE_ARGS
self.proc = custom_popen.Popen('sh', std=custon_popen.PIPE, stdout=custom_popen.PIPE)
的问题,我有是,Python脚本不会尝试当用户点击GUI上的关闭按钮关闭MY-。该脚本确实关闭了GUI。
所以,我的问题是如何链接用户选择关闭GUI到一个命令来关闭Python脚本中的My_Program进程?
任何帮助表示赞赏。另外,如果需要注意,脚本需要pygtk 2.0。
感谢您的回答,Marc。我的externel程序是一个航空电子设备的模拟器,所以它基本上是一直运行直到它被告知关闭。我已经看过了Popen.close()和os.kill()函数,我想我正在尝试与之沟通的是我对Python格式知之甚少,无法知道如何转换到Popen.close()命令捕获用户关闭GUI的操作。 – Jason 2011-03-01 19:04:46
也许一个更好的方式说明它是externel可执行文件是用来运行的,直到用户关闭GUI。 GUI本身有一个框,用户可以点击该框并选择一个文件作为输入输入到可执行文件中。但是,当可执行文件没有任何新的数据输入时,它只是在他的套接字的另一端向他正在通信的人发送“我活着”状态。所以,我只需要将用户单击gui角落中的“x”的动作链接到我可以调用Popen.close()的地方。 – Jason 2011-03-01 19:25:17
好的。我发现脚本在哪里调用关闭步骤,所以现在我需要知道如何正确关闭应用程序。我如何得到正确的孩子可执行文件的PID? – Jason 2011-03-01 23:20:13