2012-06-05 27 views
0

當我單擊運行按鈕而不點擊已創建的CV按鈕或紅外按鈕時,我將關閉窗口。但是,如果我點擊CV按鈕或紅外按鈕,然後我點擊退出按鈕,我不會工作。我嘗試刪除CV和IR按鈕內的app.MainLoop(),但仍然無法工作。Python無法使用self.Close關閉(True)

p/s CV_Button和IR_Button將調用另一個.py文件,它是一個GUI。我不知道如何在Python中調用main,但至少它工作,我甚至不知道是否是對的或錯誤的。

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,儘管已棄用)。刪除其他人,它可能會工作。