wxPython – Dynamically enable and disable tools in toolbar using button

In this article we are going to learn how can we enable and disable dynamically using a single button. We will create a button and a toolbar with a single tool. We will use a normal button like a toggle button.
Steps :
1. Create a toolbar in a frame.
2. Add a tool with a certain id.
3. Create button in the window.
4. Declare a global count variable and initialize it to zero.
5. Increment when button is clicked.
6. If count is even then enable tool else disable tool.
Code Example:
import wx class Example(wx.Frame): def __init__(self, *args, **kwargs): super(Example, self).__init__(*args, **kwargs) self.InitUI() def InitUI(self): pnl = wx.Panel(self) self.toolbar = self.CreateToolBar() qtool = self.toolbar.AddTool(12, 'Quit', wx.Bitmap('/Desktop/wxPython/signs.png')) self.toolbar.Realize() self.Bind(wx.EVT_TOOL, self.OnQuit, qtool) self.SetSize((350, 250)) self.SetTitle('Simple toolbar') self.Centre() self.btn = wx.Button(pnl, label ='Close', pos =(20, 20)) self.btn.Bind(wx.EVT_BUTTON, self.Onclick) self.SetSize((350, 250)) self.SetTitle('wx.Button') self.Centre() def OnQuit(self, e): self.Close() def Onclick(self, e): # disable tool using EnableTool self.toolbar.EnableTool(12, False) def main(): app = wx.App() ex = Example(None) ex.Show() app.MainLoop() if __name__ == '__main__': main() |
Output :
Enabled :
Disabled :



