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")
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()