Crear una subclase de wxPanel en wxPython
Andres Moya
Andres.Moya en hispalinux.es
Mie Mar 9 12:35:11 CET 2005
Buenas.
Hoy me toca preguntar a mí: estoy intentando crear un control nuevo en
wxPython, que haga lo mismo que el wxPanel normal, pero añadiendole
algunas cosillas. Y luego lo quiero usar desde un programa que lee los
controles de un fichero de recursos .xrc
En principio se me ha ocurrido derivando directamente de wxPanel, pero
no funciona. Navegando un poco por ahí, me doy cuenta de que lo que
pretendo no es tan sencillo, por el tema de que los objetos wxPython son
envoltorios de los de C++ y eso. ¿Alguien me podría decir cómo se hacen
componentes nuevos?
Lo que he hecho hasta ahora es crear esta clase:
from wxPython import wx
class MiPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
y luego, en el fichero de recursos, decirle que el panel es de la
subclase que he creado:
<object class="wxPanel" name="panelDePrueba" subclass="mimodulo.MiPanel">
Pues haciendo esto, al ejecutar el programa obtengo lo siguiente:
Traceback (most recent call last):
File
"C:\ARCHIV~1\PROGRA~1\Python23\lib\site-packages\wx-2.5.3-msw-unicode\wx\xrc.py",
line 685, in Create
inst = klass()
File
"C:\ARCHIV~1\PROGRA~1\Python23\lib\site-packages\wx-2.5.3-msw-unicode\wx\_windows.py",
line 19, in __init__
newobj = _windows_.new_Panel(*args, **kwargs)
TypeError: new_Panel() takes at least 1 argument (0 given)
Lo que está ocurriendo es que la función Create de xrc.py instancia mi
objeto sin pasarle ningún parámetro, pero luego éste intenta crear el
panel de C++ que necesita más información...
--
Andres.Moya en hispalinux.es
Más información sobre la lista de distribución Python-es