Выполнение программы не заканчивается после нажатия кнопки закрытия python (с помощью wxpython-GUI) - PullRequest
1 голос
/ 30 ноября 2010

Я создал приложение планировщика процессора с использованием python, я использовал wxpython, чтобы создать фрейм, содержащий просто большую текстовую область, которая постоянно обновляется, проблема в том, что нажатие кнопки закрытия (x) закрывает фрейм, но другойснова появятся несколько кадров, и программа продолжит выполнение, ниже приведен код интерфейса.

class Interface(wx.Frame):
    def __init__(self , par , id):
        wx.Frame.__init__(self , par , id , 'XP simulator' , size=(200 , 200 ))
        panel = wx.Panel(self)
        self.sel = 30
        centerPanel = wx.Panel(panel, -1 , size=(100,100) , pos=(50,30))
        self.cpu = CPU(centerPanel, -1)


    def prnt(string , frm):
        print string

    if __name__ =="__main__":

        mutex = threading.Semaphore()
        full = threading.Semaphore(0)
        empty = threading.Semaphore(30)

        buff = util.Queue()
        prod = util.Producer(buff , mutex , empty , full)

        app = wx.App()
        frame = Interface(None, -1)
        frame.Show()

        prod.start()
        print "produced"
        time.sleep(1)
        xp = sched.XPsched(buff , mutex , full , empty, prnt, frame)
        xp.start()

        app.MainLoop()

Спасибо;) Наталья ..

1 Ответ

1 голос
/ 30 ноября 2010

Вы должны связать событие закрытия в вашем wxFrame:

self.Bind(wx.EVT_CLOSE, self.on_close)

, затем добавить метод on_close:

def on_close(self, event):
    self.Destroy()
    sys.exit(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...