Foros del Web » Programando para Internet » Python »

problemas con wxpython y dibujado aleatoreo

Estas en el tema de problemas con wxpython y dibujado aleatoreo en el foro de Python en Foros del Web. tengo este programa import wx import random class ventana(wx.Frame): def __init__(self,parent): wx.Frame.__init__(self,parent,size=(700,700)) self.Show() self.Bind(wx.EVT_PAINT,self.onpaint) self.Bind(wx.EVT_BUTTON,self.onboton) boton=wx.Button(self,label="inicio",pos=(450,450)) def onboton(self,event): entes=random.randrange(10,390,20) def onpaint(self,event): dc=wx.PaintDC(self) dc.SetPen(wx.Pen("BLACK")) dc.DrawRectangle(10,10,400,400) dc.DrawLine(30,10,30,410) ...
  #1 (permalink)  
Antiguo 19/04/2011, 04:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 13 años, 4 meses
Puntos: 1
Pregunta problemas con wxpython y dibujado aleatoreo

tengo este programa

import wx
import random
class ventana(wx.Frame):
def __init__(self,parent):
wx.Frame.__init__(self,parent,size=(700,700))
self.Show()
self.Bind(wx.EVT_PAINT,self.onpaint)
self.Bind(wx.EVT_BUTTON,self.onboton)
boton=wx.Button(self,label="inicio",pos=(450,450))

def onboton(self,event):

entes=random.randrange(10,390,20)



def onpaint(self,event):

dc=wx.PaintDC(self)
dc.SetPen(wx.Pen("BLACK"))
dc.DrawRectangle(10,10,400,400)

dc.DrawLine(30,10,30,410)
dc.DrawLine(50,10,50,410)
dc.DrawLine(70,10,70,410)
dc.DrawLine(90,10,90,410)
dc.DrawLine(110,10,110,410)
dc.DrawLine(130,10,130,410)
dc.DrawLine(150,10,150,410)
dc.DrawLine(170,10,170,410)
dc.DrawLine(190,10,190,410)
dc.DrawLine(210,10,210,410)
dc.DrawLine(230,10,230,410)
dc.DrawLine(250,10,250,410)
dc.DrawLine(270,10,270,410)
dc.DrawLine(290,10,290,410)
dc.DrawLine(310,10,310,410)
dc.DrawLine(330,10,330,410)
dc.DrawLine(350,10,350,410)
dc.DrawLine(370,10,370,410)
dc.DrawLine(390,10,390,410)

dc.DrawLine(10,30,410,30)
dc.DrawLine(10,50,410,50)
dc.DrawLine(10,70,410,70)
dc.DrawLine(10,90,410,90)
dc.DrawLine(10,110,410,110)
dc.DrawLine(10,130,410,130)
dc.DrawLine(10,150,410,150)
dc.DrawLine(10,170,410,170)
dc.DrawLine(10,190,410,190)
dc.DrawLine(10,210,410,210)
dc.DrawLine(10,230,410,230)
dc.DrawLine(10,250,410,250)
dc.DrawLine(10,270,410,270)
dc.DrawLine(10,290,410,290)
dc.DrawLine(10,310,410,310)
dc.DrawLine(10,330,410,330)
dc.DrawLine(10,350,410,350)
dc.DrawLine(10,370,410,370)
dc.DrawLine(10,390,410,390)
dc.SetBrush(wx.Brush("BLUE",wx.SOLID))
dc.DrawRectangle(entes,entes,20,20)

dc.SetBrush(wx.Brush("RED",wx.SOLID))
dc.DrawRectangle(70,70,20,20)
dc.SetBrush(wx.Brush("BLACK",wx.SOLID))
dc.DrawRectangle(270,270,20,20)

app=wx.App(0)
v=ventana(None)
app.MainLoop()

y quiero que a partir de numeros aleatoreos me vaya moviendo los rectangulos o cuadrados de casilla en casilla cuando presiono el boton, como puedo hacerlo? en dc.DrawRectangle me dice que nombre global "entes" no esta definido, no se que mas agregarle.agradeceria una ayudita.
  #2 (permalink)  
Antiguo 19/04/2011, 10:34
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: problemas con wxpython y dibujado aleatoreo

Código Python:
Ver original
  1. import wx
  2. import random
  3.  
  4. class ventana(wx.Frame):
  5.     def __init__(self,parent):
  6.         wx.Frame.__init__(self,parent,size=(700,700))
  7.         self.Show()
  8.         self.Bind(wx.EVT_PAINT,self.onpaint)
  9.         self.Bind(wx.EVT_BUTTON,self.onboton)
  10.         boton = wx.Button(self, label="inicio", pos=(450, 450))
  11.         self.entes = 10
  12.        
  13.     def onboton(self,event):
  14.         self.entes = random.randrange(10,390,20)
  15.         self.Refresh()
  16.         self.Update()
  17.        
  18.        
  19.        
  20.     def onpaint(self,event):
  21.         dc = wx.PaintDC(self)
  22.         dc.SetPen(wx.Pen("BLACK"))
  23.         dc.DrawRectangle(10,10,400,400)
  24.        
  25.         dc.DrawLine(30,10,30,410)
  26.         dc.DrawLine(50,10,50,410)
  27.         dc.DrawLine(70,10,70,410)
  28.         dc.DrawLine(90,10,90,410)
  29.         dc.DrawLine(110,10,110,410)
  30.         dc.DrawLine(130,10,130,410)
  31.         dc.DrawLine(150,10,150,410)
  32.         dc.DrawLine(170,10,170,410)
  33.         dc.DrawLine(190,10,190,410)
  34.         dc.DrawLine(210,10,210,410)
  35.         dc.DrawLine(230,10,230,410)
  36.         dc.DrawLine(250,10,250,410)
  37.         dc.DrawLine(270,10,270,410)
  38.         dc.DrawLine(290,10,290,410)
  39.         dc.DrawLine(310,10,310,410)
  40.         dc.DrawLine(330,10,330,410)
  41.         dc.DrawLine(350,10,350,410)
  42.         dc.DrawLine(370,10,370,410)
  43.         dc.DrawLine(390,10,390,410)
  44.  
  45.         dc.DrawLine(10,30,410,30)
  46.         dc.DrawLine(10,50,410,50)
  47.         dc.DrawLine(10,70,410,70)
  48.         dc.DrawLine(10,90,410,90)
  49.         dc.DrawLine(10,110,410,110)
  50.         dc.DrawLine(10,130,410,130)
  51.         dc.DrawLine(10,150,410,150)
  52.         dc.DrawLine(10,170,410,170)
  53.         dc.DrawLine(10,190,410,190)
  54.         dc.DrawLine(10,210,410,210)
  55.         dc.DrawLine(10,230,410,230)
  56.         dc.DrawLine(10,250,410,250)
  57.         dc.DrawLine(10,270,410,270)
  58.         dc.DrawLine(10,290,410,290)
  59.         dc.DrawLine(10,310,410,310)
  60.         dc.DrawLine(10,330,410,330)
  61.         dc.DrawLine(10,350,410,350)
  62.         dc.DrawLine(10,370,410,370)
  63.         dc.DrawLine(10,390,410,390)
  64.         dc.SetBrush(wx.Brush("BLUE",wx.SOLID))
  65.         dc.DrawRectangle(self.entes, self.entes, 20, 20)
  66.        
  67.         dc.SetBrush(wx.Brush("RED",wx.SOLID))
  68.         dc.DrawRectangle(70,70,20,20)
  69.         dc.SetBrush(wx.Brush("BLACK",wx.SOLID))
  70.         dc.DrawRectangle(270,270,20,20)
  71.        
  72. app = wx.App(0)
  73. v = ventana(None)
  74. app.MainLoop()

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:02.