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 :