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