Python - Cuadrado aleatorio con TKinter

 
Vista:
Imágen de perfil de Paquito
Val: 9
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Cuadrado aleatorio con TKinter

Publicado por Paquito (5 intervenciones) el 21/10/2017 17:59:59
Hola amigos.
Estoy siguiendo este interesante tutorial:
https://argentinaenpython.com/quiero-aprender-python/doma-de-serpientes-para-ninos_swfk-es-win-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:

1
2
3
4
5
6
7
8
9
10
11
12
# 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)
  lienzo.create_rectangle(x1, y1, x2, y2)

Nota:
Al pegar el código, no sale el espaciado de las cinco últimas líneas. No es error mío
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.846
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Cuadrado aleatorio con TKinter

Publicado por tincopasan (564 intervenciones) el 21/10/2017 18:45:02
el código está bien, ahora supongo que ese no es todo el código que pensás hacer funcionar, porque si es así está incompleto, te falta por lo menos llamar a la función, por ejemplo:
1
rectangulo_aleatorio(lienzo,400,100)
y además mostrar la ventana:
1
ventana.mainloop()

si teniendo esas dos líneas te da un error o no funciona,pues pon que error te da.Antes que me olvide(y por las dudas)
estas últimas dos líneas van sin indentado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Paquito
Val: 9
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Cuadrado aleatorio con TKinter

Publicado por Paquito (5 intervenciones) el 21/10/2017 19:01:21
Pues gracias or contestarme, tincopasan, pero sigue sin dibujarme ningún cuadrado

El código, se me queda así:
1
2
3
4
5
6
7
8
9
10
11
12
13
# 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)

El código
1
ventana.mainloop()
, lo he probado en múltiples lugares :-(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.846
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Cuadrado aleatorio con TKinter

Publicado por tincopasan (564 intervenciones) el 22/10/2017 00:54:37
pues las últimas dos líneas estan al reves, la llamada a ventana.mainloop debe ser la última. Te recomiendo que leas más sobre lo básico de tkinter,igual probalo y vemos que pasa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.846
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Cuadrado aleatorio con TKinter

Publicado por tincopasan (564 intervenciones) el 22/10/2017 01:56:25
ahhh y también te falta esta línea en la función:
1
lienzo.create_rectangle(x1, y1, x2, y2)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar