2012-06-05 1 views
0

Когда я нажимаю кнопку запуска напрямую, не нажимая кнопку CV или ИК-кнопку, которую я создал, я закрою свое окно. Но если я нажму на кнопку CV или ИК-кнопку, тогда я нажал кнопку «Выход», я не буду работать. Я пытаюсь удалить app.MainLoop() внутри кнопки CV и IR, но все еще не работает.Python Не удается закрыть с помощью self.Close (True)

p/s CV_Button и IR_Button вызывают другой .py-файл, который является графическим интерфейсом. Я не знаю, как вызвать main в python, но, по крайней мере, он работает, и я даже не знаю, правильно это или нет.

def CV_Button(self, event): # wxGlade: Main.<event_handler> 
    if __name__ == "__main__": 
     app = wx.PySimpleApp(0) 
     wx.InitAllImageHandlers() 
     MainFrame = CV(None, -1, "") 
     app.SetTopWindow(MainFrame) 
     MainFrame.Show() 
     app.MainLoop() 
    event.Skip() 

def IR_Button(self, event): # wxGlade: Main.<event_handler> 
    if __name__ == "__main__": 
     app = wx.PySimpleApp(0) 
     wx.InitAllImageHandlers() 
     MainFrame = IR(None, -1, "") 
     app.SetTopWindow(MainFrame) 
     MainFrame.Show() 
     app.MainLoop() 
    event.Skip() 

def Exit_Button(self, event): # wxGlade: Main.<event_handler> 
    self.Close(True) 
    event.Skip() 

if __name__ == "__main__": 
app = wx.PySimpleApp(0) 
wx.InitAllImageHandlers() 
Main = Main(None, -1, "") 
app.SetTopWindow(Main) 
Main.Show() 
app.MainLoop() 

ответ

1

У вас не может быть более одного wx.App для каждого приложения. Таким образом, у вас не может быть двух основных. Должен быть один экземпляр wx.App (или wx.PySimpleApp, хотя это устарело). Удалите остальных, и это, вероятно, сработает.

Смежные вопросы