Foros Python

Versión completa: Cuadrados aleatorios en TKinter
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola amigos.
Estoy siguiendo este interesante tutorial:
https://argentinaenpython.com/quiero-apr...-0.0.4.pdf
El libro es divertido y fácil de seguir.
Los únicos problemas que tiene, es que hay algún error tipográfico en el código y que algunos ejemplos dan por seguro que sabes algunas cosas.
Así que, intentando hacer el ejemplo de rectángulos aleatorios, me he quedado colgado.
Aquí os pongo el código y os pido por favor el qué hago mal, pues no me funciona:


Código:
# Canvas rectángulo aleatorio
from tkinter import *
ventana = Tk()
lienzo = Canvas(ventana, width=400,height=400)
lienzo.pack()
import random
def rectangulo_aleatorio(lienzo, ancho, alto):
  x1 = random.randrange(ancho)
  y1 = random.randrange(alto)
  x2 = x1 + random.randrange(ancho-x1)
  y2 = y1 + random.randrange(alto-y1)
ventana.mainloop()
rectangulo_aleatorio(lienzo,400,100)
hola,

no has definido el rectangulo. Solo tienes las coordenadas aleatorias.
te pongo el ejemplo funcionando, con algunos detalles para investigar:


Código:
# Canvas rectángulo aleatorio
from tkinter import *
import random

color_actual = 'blue'

ventana = Tk()
lienzo = Canvas(ventana, width=400,height=400)
lienzo.pack()

def rectangulo_aleatorio(lienzo, ancho, alto):
 x1 = random.randrange(ancho)
 y1 = random.randrange(alto)
 x2 = x1 + random.randrange(ancho-x1)
 y2 = y1 + random.randrange(alto-y1)
 
 lienzo.create_rectangle(x1, y1, x2, y2,  fill=color_actual, \
        width=3, tags=("area_rectang"))

rectangulo_aleatorio(lienzo,400,100)
ventana.mainloop()

saludos.
¡Gracias! ¡Funciona!
8-)

Ahora, va a tocar hacer experimentos, para comprender todo el asunto