2009-03-09 9 views
7

auinotebookのタブを閉じるときに使用されるイベントはありますか?私は EVT_AUINOTEBOOK_PAGE_CLOSE(D)でテストしました。それはうまくいかなかった。wxpython auinotebook close tabイベント

また、タブ自体のイベントを右クリックして起動したいと思います。

auiマネージャ/ノートブックで使用できるすべてのイベントはどこにありますか?私の貧弱な検索スキルだけかもしれませんが、私はマウス/ウィンドウイベントのためにではなく、存在する様々なイベントのリストを見つけることはできません。完全なリストを持つことは本当に便利です。

#!/usr/bin/python 

#12_aui_notebook1.py 

import wx 
import wx.lib.inspection 

class MyFrame(wx.Frame): 
    def __init__(self, *args, **kwds): 
     wx.Frame.__init__(self, *args, **kwds) 

     self.nb = wx.aui.AuiNotebook(self) 

     self.new_panel('Page 1') 
     self.new_panel('Page 2') 
     self.new_panel('Page 3') 

     self.nb.Bind(wx.EVT_AUINOTEBOOK_PAGE_CLOSED, self.close) 

    def new_panel(self, nm): 
     pnl = wx.Panel(self) 
     pnl.identifierTag = nm 
     self.nb.AddPage(pnl, nm) 
     self.sizer = wx.BoxSizer() 
     self.sizer.Add(self.nb, 1, wx.EXPAND) 
     self.SetSizer(self.sizer) 

    def close(self, event): 
     print 'closed' 

class MyApp(wx.App): 
    def OnInit(self): 
     frame = MyFrame(None, -1, '12_aui_notebook1.py') 
     frame.Show() 
     self.SetTopWindow(frame) 
     return 1 

if __name__ == "__main__": 
    app = MyApp(0) 
# wx.lib.inspection.InspectionTool().Show() 
    app.MainLoop() 

Oerjanペター

答えて

8

これは、あなたが望むbindコマンドである:(例:カスタムコンテキストメニューを表示するように)タブ上で右クリックを検出するために

self.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSED, self.close, self.nb) 

self.Bind(wx.aui.EVT_AUINOTEBOOK_TAB_RIGHT_DOWN, self.right, self.nb) 

auiノートブックイベントの一覧です:

EVT_AUINOTEBOOK_PAGE_CLOSE 
EVT_AUINOTEBOOK_PAGE_CLOSED 
EVT_AUINOTEBOOK_PAGE_CHANGED 
EVT_AUINOTEBOOK_PAGE_CHANGING 
EVT_AUINOTEBOOK_BUTTON 
EVT_AUINOTEBOOK_BEGIN_DRAG 
EVT_AUINOTEBOOK_END_DRAG 
EVT_AUINOTEBOOK_DRAG_MOTION 
EVT_AUINOTEBOOK_ALLOW_DND 
EVT_AUINOTEBOOK_DRAG_DONE 
EVT_AUINOTEBOOK_BG_DCLICK 
EVT_AUINOTEBOOK_TAB_MIDDLE_DOWN 
EVT_AUINOTEBOOK_TAB_MIDDLE_UP 
EVT_AUINOTEBOOK_TAB_RIGHT_DOWN 
EVT_AUINOTEBOOK_TAB_RIGHT_UP 

:{pythonのフォルダ}/libに/のsite-packages/{wxPythonのフォルダには、}

+0

感謝を/wx/aui.py。非常に便利です。 – Orjanp