2013-10-04 132 views
0

无论何时切换标签页,我都想获取下列代码的活动标签索引。有没有内置函数?如何获取wxnotebook中活动选项卡的选项卡号?

import wx 

创建笔记本:

class PageOne(wx.Panel): 
def __init__(self, parent): 
    wx.Panel.__init__(self, parent) 
    t = wx.StaticText(self, -1, "Histogram Plot", (20,20)) 
    self.currentTab=1 


class PageTwo(wx.Panel): 
def __init__(self, parent): 
    wx.Panel.__init__(self, parent) 
    t = wx.StaticText(self, -1, "This is a PageTwo object", (40,40)) 
    self.currentTab=2 


class PageThree(wx.Panel): 
    def __init__(self, parent): 
     wx.Panel.__init__(self, parent) 
     t = wx.StaticText(self, -1, "This is a PageThree object", (60,60)) 
     self.currentTab=3 


class MainFrame(wx.Frame): 
    def __init__(self): 
    wx.Frame.__init__(self, None, title="Plots") 

    # Here we create a panel and a notebook on the panel 
    p = wx.Panel(self) 
    nb = wx.Notebook(p) 

    # create the page windows as children of the notebook 
    page1 = PageOne(nb) 
    page2 = PageTwo(nb) 
    page3 = PageThree(nb) 

    # add the pages to the notebook with the label to show on the tab 
    nb.AddPage(page1, "Plot 1") 
    nb.AddPage(page2, "Plot 2") 
    nb.AddPage(page3, "Plot 3") 

    # finally, put the notebook in a sizer for the panel to manage 
    # the layout 
    sizer = wx.BoxSizer() 
    sizer.Add(nb, 1, wx.EXPAND) 
    p.SetSizer(sizer) 

# bind event to notebook 
    nb.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.ChangingTest) 

def ChangingTest(self, evt): 
    print "It worked!" 

尝试GetSelection()和印刷currentTab,但没有发现任何运气那里。谢谢。

回答

0

看看wxPython演示,看起来你需要event.GetSelection()或者可能self.GetSelection,其中“self”指的是Notebook。演示示例绑定的事件是EVT_NOTEBOOK_PAGE_CHANGED。

+0

我试过那个麦克,但它显示属性错误:'主框架对象没有属性'GetSelection' – mvsrs

+0

请注意,我说“自我”是指笔记本。所以它会像“self.myNotebook.GetSelection()” –

相关问题