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 :
Parameter Input Type Description toolid int An 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

