[pyar] wx Dibujando cosas y cuelgues

Marcelo Fernandez marcelo.fidel.fernandez en gmail.com
Jue Feb 2 17:49:45 ART 2012


Hola Sebastián,

El wx.ClientDC sirve cuando querés dibujar en el contexto gráfico
fuera del evento paint. En tu caso, como lo estás haciendo dentro del
EVT_PAINT, tenés que instanciar wx.PaintDC en su lugar.

http://docs.wxwidgets.org/stable/wx_wxpaintdc.html
http://docs.wxwidgets.org/stable/wx_wxclientdc.html
http://docs.wxwidgets.org/stable/wx_dcoverview.html

Si cambiás:
    def tablero(self,e):
        dc=wx.ClientDC(self)

por:
    def tablero(self,e):
        dc=wx.PaintDC(self)

Funciona sin problemas.

Saludos

El día 2 de febrero de 2012 13:19, Sebastian Scheib
<stackpointerex en gmail.com> escribió:
> Estoy con el Portable Python, ejecutandolo desde el PyScripter. La versión
> de wx es la 2.8.12.0, estoy con Win 7.
>
> Lo corrí desde linea de comando y tengo el mismo problema :(
>
> Gracias!
>
> Por ahora solo me pasa cuando le agrego dibujos, cuando solo estaba usando
> menues andaba bien.
>
> El 2 de febrero de 2012 09:29, Marcelo Fernandez
> <marcelo.fidel.fernandez en gmail.com> escribió:
>>
>> El día 2 de febrero de 2012 08:34, Sebastian Scheib
>> <stackpointerex en gmail.com> escribió:
>> > Como andan? Ayer estaba tratando de aprender wx. Para aprender algo
>> > generalmente necesito jugar con código. Venía bien, wx me parece
>> > bastante
>> > copado, sencillo, pero al final me surgió un problema y seguro es porque
>> > me
>> > falta algo. Cuando quiero dibujar cosas en pantalla (en el ejemplo un
>> > rectángulo, pero me pasa con lineas o lo que fuere) se cuelga todo, el
>> > botón
>> > para cerrar deja de funcionar (en otro ejemplo tenía un menu donde tenía
>> > un
>> > exit y pasaba lo mismo). Seguramente me falta algo, pero la verdad no se
>> > que
>> > es.
>> >
>> > Gracias.
>> >
>> >
>> > import wx
>> >
>> > class ventana(wx.Frame):
>> >     def __init__(self):
>> >         wx.Frame.__init__(self,None,-1,"Prueba")
>> >         self.SetSize((800,600))
>> >
>> >         self.Bind(wx.EVT_PAINT, self.tablero)
>> >
>> >         self.Show()
>> >     def tablero(self,e):
>> >         dc=wx.ClientDC(self)
>> >         dc.SetPen(wx.Pen('blue', 1))
>> >         dc.DrawRectangle(10,10,500,500)
>> >
>> > def main():
>> >     app=wx.App()
>> >     ventana()
>> >     app.MainLoop()
>> >
>> >
>> > if __name__ == '__main__':
>> >     main()
>> >
>>
>> Hola Sebastián,
>>
>> Copié y pegué tu ejemplo en un archivo, lo corrí y funciona (la puedo
>> cerrar, digamos). ¿Otros ejemplos de wx sí te funcionan? ¿Qué entorno
>> tenés (SO, versión de wxPython, etc).? ¿Lo estás corriendo poniendo
>> "python ejemplo.py"?
>>
>> De paso, sugiero que chusmees la aplicación de demostración que hay
>> muchísimos ejemplos de código listos para correr (o modificar y
>> correr). Si estás sobre Windows,la bajás de acá [1], y si estás en
>> Debian/Ubuntu, instalate el paquete wx2.8-examples y mirá el
>> directorio /usr/share/doc/wx2.8-examples/examples/wxPython, o lo bajás
>> de acá [2].
>>
>> [1]
>> http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-docs-demos-2.8.12.1.exe
>> [2]
>> http://downloads.sourceforge.net/wxpython/wxPython-demo-2.8.12.1.tar.bz2
>>
>> Saludos
>> --
>> Marcelo F. Fernández
>> Buenos Aires, Argentina
>> Licenciado en Sistemas - CCNA
>>
>> E-Mail: marcelo.fidel.fernandez en gmail.com
>> Blog: http://blog.marcelofernandez.info
>> Twitter: http://twitter.com/fidelfernandez
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar



-- 
Marcelo F. Fernández
Buenos Aires, Argentina
Licenciado en Sistemas - CCNA

E-Mail: marcelo.fidel.fernandez en gmail.com
Blog: http://blog.marcelofernandez.info
Twitter: http://twitter.com/fidelfernandez



More information about the pyar mailing list