[pyar] wxPython, segundo round

Mariano Reingart reingart en gmail.com
Mar Feb 7 09:25:49 ART 2012


¿Viste el ejemplo de wx.GraphicsContext?
Ya hace algo parecido a lo que estas intentando.
Cualquier cosa podes adjuntar el script para revisarlo, por lo que comentas
no me queda claro si es un tema de wx o de la logica de tu programa.
¿Con que estas depurando?

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com


2012/2/7 Sebastian Scheib <stackpointerex en gmail.com>

> Ahora le agregué un "self" al principio y empezó a tener algo de forma la
> cosa, el problema es que ahora:
>
> def OnPaint(self,e):
>         self.dc=wx.PaintDC(self)
>         DirectorioImagenes = os.getcwd()+"\images\g19x19.png"
>         self.bitmap=wx.Bitmap(DirectorioImagenes)
>         self.dc.DrawBitmap(self.bitmap,20,20)
>         self.dc.SetBrush(wx.Brush('#A4A4A4'))
>         self.dc.DrawRectangle(570,40,600,150)
>         for i in range (1,19):
>             for j in range (1,19):
>                 if(self.tablero.get_valor(i,j)!=0):
>                     self.dc.DrawCircle(i*50,j*50,10)
>
> Cuando aprieto un botón, una posicion de tablero cambia (por lo que en ahi
> en algun punto el valor va a ser distinto de 0 por lo que va a dibujar el
> círculo), pero debugeandoloveo que cuando lo encuentra, pasa el if, dibuja
> el círculo, pero vuelve al if y no al for :(
>
> El 6 de febrero de 2012 23:09, Ismael Bejarano <ismaelbej en gmail.com>escribió:
>
>>  Hola,
>>
>> El 6 de febrero de 2012 18:40, Sebastian Scheib <stackpointerex en gmail.com
>> > escribió:
>>
>> Gracias por la ayuda hasta ahora. El siguiente paso que no logro sacar
>>> como es es refrescar lo que está dibujado en la pantalla con el evento
>>> EVT_PAINT.
>>>
>>> Por ejemplo, arranco y bindeo con OnPaint:
>>>
>>> self.Bind(wx.EVT_PAINT, self.OnPaint)
>>>
>>>
>>> y en OnPaint:
>>>
>>>  def OnPaint(self,e):
>>>         dc=wx.PaintDC(self)
>>>         dc.DrawBitmap(self.bitmap,20,20)
>>>         dc.SetBrush(wx.Brush('#A4A4A4'))
>>>         dc.DrawRectangle(570,40,600,150)
>>>         for i in range (1,20):
>>>              for j in range (1,20):
>>>                 if(self.tablero.get_valor(i,j)!=0):
>>>                     dc.SetBrush(wx.Brush('#FFFFFF'))
>>>                     print "Hola" *<---Esto lo puse para ver si pasaba
>>> por acá, lo cual sucede.*
>>>                     dc.DrawCircle(i*20,j*20,10)
>>>
>>> En el principio del programa me muestra el bitmap y el rectángulo que le
>>> pido pero después empieza mi problema:
>>>
>>> En principio tablero en todos lados va a valer 0 por lo que no va a
>>> dibujar círculos, pero en un momento voy a hacer que en algún lugar valga
>>> distinto. La cosa es que entra de nuevo en OnPaint, me muestra el "Hola"
>>> pero no me dibuja los círculos. Lo que en principio me hace pensar que de
>>> alguna manera debería refrescar todo, pero no se como se hace :(
>>>
>>>
>> El evento paint esta optimizado para solo redibujar las regiones que
>> cambiaron. En wx podes forzar el redibujado completo de un control llamando
>> a Refresh.
>>
>>
>>> Gracias!
>>>
>>>
>> Saludos,
>> Ismael
>>
>>
>> _______________________________________________
>> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120207/e3e2c4c9/attachment.html>


More information about the pyar mailing list