在pygtk关闭第一个窗口之前打开第二个窗口

时间:2013-12-09 09:23:06

标签: python python-2.7 subprocess pygtk

在我的pygtk应用程序中,我想打开下一个窗口后关闭当前窗口。

这是我写的代码

#!/usr/bin/env python

# example base.py

import pygtk
pygtk.require('2.0')
import gtk
import subprocess

class Base:
    def next(self,widget):
        subprocess.call('fabfile.py', shell=True)
        self.window.destroy()

    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_size_request(200,200)
        self.button = gtk.Button("Next")
        self.button.show()
        self.button.connect("clicked", self.next)
        self.window.add(self.button)
        self.window.show()

    def main(self):
        gtk.main()

print __name__
if __name__ == "__main__":
    base = Base()
    base.main()

当我点击下一个按钮时,它会打开下一个窗口,但它不会在后台关闭我当前的窗口,当前窗口打开下一个窗口后会在后台挂起。

def next(self,widget):
   subprocess.call("fabfile.py", shell=True)
   self.win.destroy()

当我在

中运行此代码时

window machine它没有关闭现有窗口和

Linux machine它给出了这个错误。

/bin/sh: fabfile.py: command not found

任何人都让我知道如何解决这个问题。感谢...

1 个答案:

答案 0 :(得分:0)

试试这个,我希望它能奏效,但我不确定,

import subprocess
subprocess.Popen(["fabfile.py"], bufsize=2048, shell=True,stdin=subprocess.PIPE, stdout=subprocess.PIPE)
self.win.destroy()

subprocess.Popen将打开您的第二个窗口并在当前窗口后关闭。