How can I get tab number of active tab in wxnotebook?

不问归期 提交于 2019-12-13 04:13:40

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!