navi2582 0 Newbie Poster

I am trying to toggle between the two toolbars (in two different panes) and couldn't do it with the code below. Not sure where the problem is....

I should only see "Page number" details when I click on "Read/Write" and "Hello world" when I click on "Write".

Any ideas are very welcome!!!

Here is the code:

`Inline Code Example Here`
import wx
import wx.grid
import wx.html
import wx.aui
from time import *
import cStringIO
import os
import subprocess
class PyAUIFrame(wx.Frame):
    def __init__(self, parent, id=-1, title="", pos=wx.DefaultPosition,
                 size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE |
                                            wx.SUNKEN_BORDER |
                                            wx.CLIP_CHILDREN):
        wx.Frame.__init__(self, parent, id, title, pos, size, style)
        # tell FrameManager to manage this frame
        self._mgr = wx.aui.AuiManager()
        self._mgr.SetManagedWindow(self)
        self._perspectives = []
        self.n = 0
        self.x = 0
        tb4 = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
                         wx.TB_FLAT | wx.TB_NODIVIDER | wx.TB_HORZ_TEXT)
        tb4.SetToolBitmapSize(wx.Size(16,16))
        tb4_bmp1 = wx.ArtProvider_GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, wx.Size(16, 16))
        rwtool = tb4.AddLabelTool(101, "Read/Write", tb4_bmp1)
        tb4.AddSeparator()
        wtool = tb4.AddLabelTool(101, "Write", tb4_bmp1)
        tb4.AddSeparator()
        htool = tb4.AddLabelTool(101, "Help", tb4_bmp1)
        tb4.AddSeparator()
        tb4.Realize()
        self._mgr.AddPane(self.CreateRW(), wx.aui.AuiPaneInfo().Name("RW_content").
                          CenterPane().Hide())
        self._mgr.AddPane(self.CreateTest(), wx.aui.AuiPaneInfo().Name("TEST_content").
                          CenterPane().Hide())
        self._mgr.AddPane(tb4, wx.aui.AuiPaneInfo().
                          Name("tb4").Caption("Sample Bookmark Toolbar").
                          ToolbarPane().Top().Row(2).
                          LeftDockable(False).RightDockable(False))
        all_panes = self._mgr.GetAllPanes()
        for ii in xrange(len(all_panes)):
            if not all_panes[ii].IsToolbar():
                all_panes[ii].Hide()
        # "commit" all changes made to FrameManager
        self._mgr.Update()
        self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
        self.Bind(wx.EVT_SIZE, self.OnSize)
        self.Bind(wx.EVT_CLOSE, self.OnClose)
        # Show How To Use The Closing Panes Event
        self.Bind(wx.aui.EVT_AUI_PANE_CLOSE, self.OnPaneClose)
        self.Bind(wx.EVT_TOOL, self.OnReadWrite, rwtool)
        self.Bind(wx.EVT_TOOL, self.OnTest, wtool)
    def OnClose(self, event):
        self._mgr.UnInit()
        del self._mgr
        self.Destroy()
    def OnPaneClose(self, event):
        caption = event.GetPane().caption
        if caption in ["Tree Pane", "Dock Manager Settings", "Fixed Pane"]:
            msg = "Are You Sure You Want To Close This Pane?"
            dlg = wx.MessageDialog(self, msg, "AUI Question",
                                   wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
            if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]:
                event.Veto()
            dlg.Destroy()
    def OnEraseBackground(self, event):
        event.Skip()
    def OnSize(self, event):
        self.Refresh()
        event.Skip()
    def OnTest(self, event):
        self._mgr.GetPane("RW_content").Hide()
        self._mgr.GetPane("TEST_content").Show()
        self._mgr.Update()
    def OnReadWrite(self, event):
        self._mgr.GetPane("TEST_content").Hide()
        self._mgr.GetPane("RW_content").Show()
        self._mgr.Update()
    def CreateTest(self):
        self.panel = wx.Panel(self)
        StaticText = wx.StaticText
        TestText = StaticText(self.panel, -1, "Hello World!!!", (250, 250))
        return self.panel
    def CreateRW(self):
        self.panel = wx.Panel(self)
        StaticText = wx.StaticText
        pnLabel = StaticText(self.panel, -1, "Page Number", (50, 25))
        self.pnValue = wx.TextCtrl(self.panel,-1, "1", wx.Point(200, 25), wx.Size(150, 20),
                           wx.NO_BORDER | wx.TE_PROCESS_ENTER)
        return self.panel
#----------------------------------------------------------------------
class MyApp(wx.App):
    def __init__(self, redirect=False, filename=None):
       wx.App.__init__(self, redirect, filename)
       self.frame = wx.Frame(None, wx.ID_ANY, title='GUI')
       self.panel = wx.Panel(self.frame, wx.ID_ANY)
       frame = PyAUIFrame(self.panel, wx.ID_ANY, "GUI", size=(750, 590))
       frame.Show()
if __name__ == '__main__':
   app = MyApp()
   app.MainLoop()
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.