问题
I want to get the active tab index for the following code whenever tab is switched. Is there any built in function?
import wx
Creating notebooks:
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!"
Tried GetSelection() and printing currentTab but did not find any luck there. Thanks.
回答1:
Looking at the wxPython demo, it appears that you want event.GetSelection() or possibly self.GetSelection where "self" refers to the Notebook. The event that the demo example is bound to is EVT_NOTEBOOK_PAGE_CHANGED.
来源:https://stackoverflow.com/questions/19180348/how-can-i-get-tab-number-of-active-tab-in-wxnotebook