wxPython: habilite y deshabilite dinámicamente las herramientas en la barra de herramientas usando el botón

En este artículo vamos a aprender cómo podemos habilitar y deshabilitar dinámicamente usando un solo botón. Crearemos un botón y una barra de herramientas con una sola herramienta. Usaremos un botón normal como un botón de alternancia.

Pasos :

1. Cree una barra de herramientas en un marco.
2. Agregue una herramienta con una identificación determinada.
3. Crear botón en la ventana.
4. Declare una variable de conteo global e inicialícela a cero.
5. Incremento cuando se hace clic en el botón.
6. Si el conteo es par, habilite la herramienta; de lo contrario, desactívela.

Ejemplo de código:

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()

Producción :

Habilitado :

Deshabilitado :

Publicación traducida automáticamente

Artículo escrito por RahulSabharwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *