gpt4 book ai didi

Python GUI 不关闭子进程

转载 作者:太空宇宙 更新时间:2023-11-04 04:29:20 24 4
gpt4 key购买 nike

我的工作要求我将我们的程序(其他人编写的)从 Windows 移植到 Linux。我已经能够在Linux中成功运行Python脚本以及Python脚本调用的可执行程序。

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)

我遇到的问题是,当用户单击 GUI 上的关闭按钮时,Python 脚本从不尝试关闭 My_Program。该脚本确实正确关闭了 GUI。

所以,我的问题是如何将用户选择关闭 GUI 链接到命令以关闭 Python 脚本中的 My_Program 进程?

感谢任何帮助。另外,值得注意的是,该脚本需要 pygtk 2.0。

最佳答案

外部程序是否从stdin读取然后退出?如果是,您的 close_application 方法是否调用 self.proc.stdout.close()

如果外部程序没有自动退出(例如:当它完成读取输入或执行简单任务时),那么您可能需要使用 Popen.close() 显式终止它(Python 2.6+) 或 os.kill() .

关于Python GUI 不关闭子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5158737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com