2009-02-23 4 views
1

Как узнать, из какой страницы AuiNotebook произошло событие?AuiNotebook, где произошло событие

EDIT: Извините. Вот пример кода. Как найти страницу ноутбука от ведьмы, на которую была нажата мышь?

#!/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('Pane 1') 
     self.new_panel('Pane 2') 
     self.new_panel('Pane 3') 

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

     pnl.Bind(wx.EVT_LEFT_DOWN, self.click) 

    def click(self, event): 
     print 'Mouse click' 
      #How can I find out from witch page this click came from? 


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 Pettersen

+0

Нам понадобится гораздо больше деталей, чтобы понять ваш вопрос. –

+0

Да, извините. Добавили дополнительную информацию и пример кода. – Orjanp

ответ

1

Для мыши вы можете считать текущую выбранную страницу является тот, который получил щелчок. Я добавил несколько строк в свой код. См. Комментарии

def new_panel(self, nm): 
    pnl = wx.Panel(self) 
    # just to debug, I added a string attribute to the panel 
    # don't you love dynamic languages? :) 
    pnl.identifierTag = nm 
    self.nb.AddPage(pnl, nm) 
    self.sizer = wx.BoxSizer() 
    self.sizer.Add(self.nb, 1, wx.EXPAND) 
    self.SetSizer(self.sizer) 

    pnl.Bind(wx.EVT_LEFT_DOWN, self.click) 

def click(self, event): 
    print 'Mouse click' 
    # get the current selected page 
    page = self.nb.GetPage(self.nb.GetSelection()) 
    # notice that it is the panel that you created in new_panel 
    print page.identifierTag 
+0

Я действительно думал, что испытал их все, но я, очевидно, этого не сделал. Функция GetSelection() дала мне то, что я хотел, указатель на текущую страницу. Так что спасибо. И да, динамические языки прекрасны. :) – Orjanp