0

作業中のGUIに問題があります。ペインは、ボタンをクリックして2回作成され、そのたびに閉じられます。3回目に作成しようとするとフリーズします。私はこれにコードを制限しました:

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()
4

1 に答える 1

0

self.ticketPanel問題は、同じwx.Panelインスタンス( )をペインとして追加することだと思います。すべてのペインに新しいものを作成してみてください。

于 2013-03-14T06:58:46.627 に答える