Hola me gustaría preguntar si se puede hacer una llamada a una clase desde otra clase.

E visto en distintos sitios varías maneras pero las e puesto en practica y algo no estoy haciendo bien.


Bien este es el código:

import wx

import threading

class VentanaPrincipal(wx.Frame):

"""Clase de la ventana principal"""

def __init__(self):

wx.Frame.__init__(self, None, title=VersionAPP )

# barra de menus

menuBar = wx.MenuBar()

menu_conf = wx.Menu()

item = menu_conf.Append(101, "&1 Hacer WIPE SYSTEM (Modo Recovery)\tCtrl+1", "Borra la partición SYSTEM. Acción no reversible.")

self.Bind(wx.EVT_MENU, self.OnMenuwipesystem, item)

item = menu_conf.Append(102, "&2 Hacer WIPE DATA (Modo Recovery)\tCtrl+2", "Borra la partición DATA. Acción no reversible.")

self.Bind(wx.EVT_MENU, self.OnMenuwipedata, item)

item = menu_conf.Append(103, "&3 Hacer WIPE CACHE (Modo Recovery)\tCtrl+3", "Borra la partición CACHE. Acción no reversible.")

self.Bind(wx.EVT_MENU, self.OnMenuwipecache, item)

item = menu_conf.Append(104, "&4 Hacer WIPE DALVIK (Modo Recovery)\tCtrl+4", "Borra la partición DALVIK. Acción no reversible.")

self.Bind(wx.EVT_MENU, self.OnMenuwipedalvik, item)

item = menu_conf.Append(105, "&5 Borra el Almacenamiento Interno (Modo Recovery)\tCtrl+5", "Elimina todo el contenido del Almacenamiento Interno. Acción no reversible.")

self.Bind(wx.EVT_MENU, self.OnMenuwipeinterno, item)

item = menu_conf.Append(106, "&6 Hacer todos los WIPES (Modo Recovery)\tCtrl+6", "Hace todos los WIPES juntos. Se detendrá si se produce algún error. Acción no reversible.")

self.Bind(wx.EVT_MENU, self.OnMenuwipecompleto, item)

menuBar.Append(menu_conf, "WIPES")

self.SetMenuBar(menuBar)

# paneles

panel = wx.Panel(self, wx.ID_ANY)

# widgets

Bien CONFIGURO LOS Widgets…

Y AHORA VIENE LOS DEF DE LOS MENUS, PONGO UNO DE PRUEBA:

def OnMenuwipesystem(self,event):

self.MenuBar.EnableTop(0, False) # Deshabilito EL MENÚ wipes

t = hilo_wipesystem()

t.start()

Bien lo importante es que e deshabilitado el menú WIPES ya que no deseo que se use mientras el hilo esta en ejecución bien el problema es que llamo al hilo en otra clase pero no se como volver a activar el menú ya que e probado de todo y no hay manera siempre me da error. Sobre todo que self ya esta definido en la clase del hilo.

Bien pongo el hilo:

class hilo_wipesystem(threading.Thread):

def __init__(self):

self.stdout = ""

self.stderr = ""

threading.Thread.__init__(self)

def run(self):

Bien desarrollo el hilo y cuando termina quiero volver a activar el menú WIPES.

self.MenuBar.EnableTop(0, True) # Quiero volver activar el menú WIPES

Decir que me da error cambiando self por VentanaPrincipal e probado todas las combinaciones pero no entiendo o no comprendo bien si se puede llamar de una clase a otra.

Os DEJO IGUALMENTE LA PARTE FINAL:

### Inicio clase Aplicación

class Aplicacion(wx.App):

"""Clase de la aplicacion."""

def OnInit(self):

self.ventana = VentanaPrincipal()

self.ventana.Show(True)

#self.SetTopWindow(self.ventana)

return True

if __name__ == '__main__':

aplicacion = Aplicacion()

aplicacion.MainLoop()

### Fin clase Aplicación

Muchas gracias de antemano.

Cordiales saludos.

_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Responder a