2013-03-14 34 views
0

我遇到了一個我正在處理的GUI的問題。通過單擊該按鈕創建窗格兩次,然後每次關閉該窗格。當我嘗試第三次創建它時,它會凍結。我有限的代碼如下:wxpython嘗試添加aui窗格時GUI崩潰

import wx 
import wx.aui as aui 

class Controller: 
    def __init__(self, app): 
     self.view = Frame() 
     self.view.btn.Bind(wx.EVT_BUTTON, self.onBtn) 

    def onBtn(self, event): 
     self.view.CreateTicket() 

class Frame(wx.Frame): 
    def __init__(self): 
     wx.Frame.__init__(self, None, wx.ID_ANY, size=(600,400)) 

     self.panel = wx.Panel(self) 

     self.ticketPanel = wx.Panel(self.panel) 
     self.ticketPanel.Hide()  
     self.btn = wx.Button(self.panel) 

     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(self.btn) 

     self.panel.SetSizer(sizer) 

     self.CreatePain()   
     self.Layout() 
     self.Show() 

    def CreatePain(self):  
     self.mgr = aui.AuiManager(self.panel, 
        aui.AUI_MGR_DEFAULT 
       | aui.AUI_MGR_TRANSPARENT_DRAG 
       | aui.AUI_MGR_ALLOW_ACTIVE_PANE) 

    def CreateTicket(self): 

     self.mgr.AddPane(self.ticketPanel, aui.AuiPaneInfo(). 
         Caption("TradeTicket"). 
         Float().FloatingPosition((200,100)). 
         FloatingSize(wx.Size(50, 50)).MinimizeButton(True)) 
     self.mgr.Update() 

if __name__ == "__main__": 
    app = wx.App(False) 
    controller = Controller(app) 
    app.MainLoop() 
+0

您的意思是**窗格**,對不對? – 2013-03-14 03:26:25

+0

我並不十分熟悉wxPython,但你的按鈕事件處理程序在哪裏? – 2013-03-14 03:28:22

+0

在控制器類 – Wallace 2013-03-14 03:29:23

回答

0

我認爲問題是,你作爲一個窗格中添加相同wx.Panel實例(self.ticketPanel)。嘗試爲每個窗格創建一個新窗口。

+0

嘿謝謝安娜!這是問題所在 – Wallace 2013-03-14 17:07:25

相關問題