Skip to content
Related Articles

Related Articles

Improve Article

wxPython | GetToolState() function in wx.ToolBar

  • Last Updated : 04 Jun, 2020

In this article we are going to learn about GetToolState() function associated with wx.ToolBar class of wxPython. GetToolState() function gets the on/off state of a toggle tool. It returns True if the tool is toggled on, False otherwise. It takes only toolId as a parameter to identify Tool.

Syntax:

wx.ToolBar.GetToolState(self, toolId)

Parameter :

ParameterInput TypeDescription
toolidintAn integer by which the tool may be identified in subsequent operations.

Return Type:

bool

Code Example:






import wx
  
class Example(wx.Frame):
  
    def __init__(self, *args, **kwargs):
        super(Example, self).__init__(*args, **kwargs)
  
        self.InitUI()
  
    def InitUI(self):
  
        self.count = 5
        self.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
        self.toolbar = self.CreateToolBar()
        tundo = self.toolbar.AddTool(wx.ID_UNDO, '', wx.Bitmap('right.png'))
        tredo = self.toolbar.AddTool(wx.ID_REDO, '', wx.Bitmap('wrong.png'))
        self.toolbar.EnableTool(wx.ID_REDO, False)
        self.toolbar.AddSeparator()
        self.toolbar.Realize()
        self.txt = wx.StaticText(self, 121, "Enabled")
        self.Bind(wx.EVT_TOOL, self.OnUndo, tundo)
        self.Bind(wx.EVT_TOOL, self.OnRedo, tredo)
  
        self.SetSize((350, 250))
        self.SetTitle('Undo redo')
        self.Centre()
  
    def OnUndo(self, e):
        if(self.toolbar.GetToolState(wx.ID_UNDO)== True):
            self.txt.SetLabel("Enabled")
        else:
            self.txt.SetLabel("Disabled")
  
        if self.count > 1 and self.count <= 5:
            self.count = self.count - 1
  
        if self.count == 1:
            self.toolbar.EnableTool(wx.ID_UNDO, False)
  
        if self.count == 4:
            self.toolbar.EnableTool(wx.ID_REDO, True)
  
    def OnRedo(self, e):
        if self.count < 5 and self.count >= 1:
            self.count = self.count + 1
  
        if self.count == 5:
            self.toolbar.EnableTool(wx.ID_REDO, False)
  
        if self.count == 2:
            self.toolbar.EnableTool(wx.ID_UNDO, True)
  
  
    def OnQuit(self, e):
        self.Close()
  
  
def main():
  
    app = wx.App()
    ex = Example(None)
    ex.Show()
    app.MainLoop()
  
  
if __name__ == '__main__':
    main()

Output:

Code Example 2:




import wx
  
class Example(wx.Frame):
  
    def __init__(self, *args, **kwargs):
        super(Example, self).__init__(*args, **kwargs)
  
        self.InitUI()
  
    def InitUI(self):
  
        self.count = 5
        self.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
        self.toolbar = self.CreateToolBar()
        tundo = self.toolbar.AddTool(wx.ID_UNDO, '', wx.Bitmap('right.png'))
        tredo = self.toolbar.AddTool(wx.ID_REDO, '', wx.Bitmap('wrong.png'))
        self.toolbar.EnableTool(wx.ID_REDO, False)
        self.toolbar.AddSeparator()
        self.toolbar.Realize()
        self.txt = wx.StaticText(self, 121, "Enabled")
        self.Bind(wx.EVT_TOOL, self.OnUndo, tundo)
        self.Bind(wx.EVT_TOOL, self.OnRedo, tredo)
  
        self.SetSize((350, 250))
        self.SetTitle('Undo redo')
        self.Centre()
  
    def OnUndo(self, e):
        if(self.toolbar.GetToolState(wx.ID_UNDO)== True):
            print(True)
        else:
            print(False)
  
        if self.count > 1 and self.count <= 5:
            self.count = self.count - 1
  
        if self.count == 1:
            self.toolbar.EnableTool(wx.ID_UNDO, False)
  
        if self.count == 4:
            self.toolbar.EnableTool(wx.ID_REDO, True)
  
    def OnRedo(self, e):
        if self.count < 5 and self.count >= 1:
            self.count = self.count + 1
  
        if self.count == 5:
            self.toolbar.EnableTool(wx.ID_REDO, False)
  
        if self.count == 2:
            self.toolbar.EnableTool(wx.ID_UNDO, True)
  
  
    def OnQuit(self, e):
        self.Close()
  
  
def main():
  
    app = wx.App()
    ex = Example(None)
    ex.Show()
    app.MainLoop()
  
  
if __name__ == '__main__':
    main()

Output:

True
False

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :