[Python-es] [wx.python]

Oswaldo Hernández listas en soft-com.es
Mar Mar 30 12:53:00 CEST 2010


monoBOT escribió:
> estoy creando un programilla con wx.python, en un panel he puesto una 
> serie de textos (ctrltext) que el usuario podrá llenar.
> 
> Luego con el boton de guardar sale un mensaje de diálogo que permite al 
> usuario guardar o salir, mi problema es que como los textos están en el 
> panel y el diálogo lo monto con None las variables de los textos no me 
> las coge y no se como puedo cogerlas.
> 
>  y si les pones self delante dice que el marco no tiene variables con 
> ese nombre.
> 
> como se soluciona?

En primer lugar, te recomiendo que cuando envíes código simplifiques y 
elimines todo lo que no tiene que ver con tu problema, lo que has 
enviado se hace difícil de leer.

En un primer vistazo veo lo siguiente:

- En el método __init__ creas objetos pero no guardas las referencias y 
por lo tanto luego no puedes acceder a ellos. La forma habitual de 
hacerlo es crear una propiedad en la instancia que guarde la referencia 
para poder asi utilizarla mas tarde:

     self.entranombre = wx.TextCtrl(ventana, -1, nombre_en_fichero)

- Estas haciendo el enlace del evento 'grabar' al estilo antiguo, lo 
recomendable es utilizar el Bind directamente sobre el objeto del que 
quieres capturar el evento:

     botongrabar.Bind(wx.EVT_BUTTON, self.grabar)

- Estas usando sizers, pero no haces Layout para que el frame se 
autoajuste.

Saludos,

-- 
Oswaldo Hernández



Más información sobre la lista de distribución Python-es