Skip to content
Related Articles

Related Articles

wxPython – Dynamically enable and disable tools in toolbar using button

Improve Article
Save Article
  • Last Updated : 15 May, 2020
Improve Article
Save Article

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)
    def InitUI(self):
        pnl = wx.Panel(self)
        self.toolbar = self.CreateToolBar()
        qtool = self.toolbar.AddTool(12, 'Quit'
        self.Bind(wx.EVT_TOOL, self.OnQuit, qtool)
        self.SetSize((350, 250))
        self.SetTitle('Simple toolbar')
        self.btn = wx.Button(pnl, label ='Close', pos =(20, 20))
        self.btn.Bind(wx.EVT_BUTTON, self.Onclick)
        self.SetSize((350, 250))
    def OnQuit(self, e):
    def Onclick(self, e):
        # disable tool using EnableTool
        self.toolbar.EnableTool(12, False)
def main():
    app = wx.App()
    ex = Example(None)
if __name__ == '__main__':

Output :

Enabled :

Disabled :

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!