我的工作要求我將我們的程序(也就是別人寫的)從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