wxPython: Disable a notebook tab?
Question: Is there anyway to disable a notebook tab? Like you can with the Widgets
themselves? I have a long process I kick off, and while it should be pretty
self-explanatory for those looking at it, I want to be able to prevent the
user from mucking around in other tabs until the process it is running is
complete.

I couldn't seem to find anything in `wx.Notebook` to help with this?

Code snippet:

    
    
    def __init__(self, parent):
        wx.Notebook.__init__(self, parent, id=wx.ID_ANY, style=wx.BK_DEFAULT)
    
        self.AddPage(launchTab.LaunchPanel(self), "Launch")
        self.AddPage(scanTab.ScanPanel(self), "Scan")
        self.AddPage(extractTab.ExtractPanel(self), "Extract")
        self.AddPage(virtualsTab.VirtualsPanel(self), "Virtuals")
    


Answer: It si not doable with `wx.Notebook`. But you can use some of the more advanced
widgets such as `wx.lib.agw.aui.AuiNotebook`:

    
    
    import wx
    import wx.lib.agw.aui as aui
    
    class MainWindow(wx.Frame):
        def __init__(self, *args, **kwargs):
            wx.Frame.__init__(self, *args, **kwargs)
    
            style = aui.AUI_NB_DEFAULT_STYLE ^ aui.AUI_NB_CLOSE_ON_ACTIVE_TAB
            self.notebook = aui.AuiNotebook(self, agwStyle=style)      
    
            self.panel1 = wx.Panel(self.notebook)
            self.panel2 = wx.Panel(self.notebook)
            self.panel3 = wx.Panel(self.notebook)
    
            self.notebook.AddPage(self.panel1, "First")
            self.notebook.AddPage(self.panel2, "Second")
            self.notebook.AddPage(self.panel3, "Third")
    
            self.notebook.EnableTab(1, False)
    
            self.Show()
    
    
    app = wx.App(False)
    win = MainWindow(None)
    app.MainLoop()
    

