[pyar] wxPython, segundo round

Ismael Bejarano ismaelbej en gmail.com
Lun Feb 6 23:09:19 ART 2012


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120206/46827f3c/attachment.html>


More information about the pyar mailing list