miércoles, 30 de septiembre de 2020

Cuadro con especificaciones

Cuadro con especificaciones  


Como ponerle propiedades a los dibujos o diagramas que se hagan con el modulo turtle, primero que nada se utiliza lo ya aprendido solo  que ahora pediremos 3 cosas al usuario primeo el color del fondo, luego el color  del relleno, y por ultimo el grosor que tendrá el trazo. Se utiliza el .bgcolor el cual es para el color de fondo el .pensize el cual es el grosor del trazo y por ultimo .pencolor el cual es para el color del trazo.




 Turtle graphics       =      Gráficos de tortuga

Turtle es un modulo de python que permite una programación básica, en la creación de  gráficos dinámicos mediante formas, imágenes, eventos

Propiedades

  • una orientación
  • una pluma que establece
  • una posición

Clases 

  • builtins.Exception = construcciones base Excepción Terminator
  • builtins.object = Shape ( formas)
  • builtins.tuple = objetos incorporados (Vec2D)
  • tkinter.Frame(tkinter.Widget) ScrolledCanvas
  • TNavigator(builtins.object)
  • RawTurtle(TPen, TNavigator) Turtle
  • TPen(builtins.object) RawTurtle(TPen, TNavigator)
  • TurtleScreenBase(builtins.object)TurtleScreen
  • Pen = Pluma

Métodos o Atributos

  • shape ( ) = forma
    • arrow
    • circle
    • turtle

Funciones

  • title ( ) titulo, establece el título de la ventana de tortuga
  • shape ( ) = Forma
  • back ( ) = distancia
  • backward ( ) = Hacia atrás, es la distancia en el que se va a mover la tortuga (turtle)
  • bk ( ) = Mueve la tortuga hacia atrás por distancia
  • bgpic ( ) = Establecer imagen de fondo o devolver el nombre de la imagen de fondo actual.
  • color ( ) = color del objeto o forma a dibujar
  • begin_fill ( )
  • begin_poly ( )
  • width ( ) = anchura, es el ancho del objeto
  • up ( ) = arriba; la pluma se ubica hacia arriba
  • forward ( ) = adelante

Eventos

  • onclick ( )
  • onrelease ( )
  • ondrag ( )







viernes, 25 de septiembre de 2020

El módulo turtle

 

Gráficos: El módulo turtle

El módulo turtle

En 1967 Wally Feurzeig y Seymour Papert crearon Logo, un lenguaje de programación con fines educativos. Ese lenguaje incluía las llamadas "gráficas tortuga".

La "tortuga" de Logo es un cursor al que se le pueden dar órdenes de movimiento (avance, retroceso o giro) y que puede ir dejando un rastro sobre la pantalla. Moviendo adecuadamente la tortuga se pueden conseguir dibujar todo tipo de figuras.

Python incluye un módulo llamado "turtle" que permite crear gráficos de tortuga.

En esta lección se explica cómo utilizar el módulo turtle para crear dibujos sencillos, pero sin utilizar la tortuga.

Para utilizar el módulo turtle sólo hace falta importarlo:

La ventana de dibujo: setup() y title()

El módulo turtle dibuja en una ventana distinta a la ventana de IDLE. Esta ventana de dibujo se crea al ejecutar un programa y se mantiene al acabar la ejecución del programa, pero se destruye al volver a ejecutar el programa).

La función setup(ancho, alto, posicionX, posicionY) permite definir el tamaño y la posición inicial de la ventana. Los cuatro argumentos de la función son (en píxeles):

  • ancho: ancho de la ventana.
  • alto: alto de la ventana.
  • posicionX: posición horizontal de la ventana. Los valores positivos se miden desde el borde izquierdo de la pantalla, los negativos desde el borde derecho de la pantalla.
  • posicionY: posición vertical de la ventana. Los valores positivos se miden desde el borde superior de la pantalla, los negativos desde el borde inferior de la pantalla.

El área de dibujo: screensize()

La ventana de dibujo contiene el área de dibujo, una superficie plana en la que se puede dibujar.

El área de dibujo tiene un tamaño inicial de 400 x 300 píxeles (en Windows), pero la función screensize(ancho, alto) permite definir el tamaño del área de dibujo, en píxeles.

El área de dibujo puede ser mayor o menor que la ventana de dibujo.



Este programa dibuja una linea, con la ayuda del modulo turtle, "Este programa se llama a la librería turtle pero este programa lo importa como turtlexnx" Se crea la pantalla primero despues se crea el turtle  y  luego dibuja una linea 


Este programa dibuja un cuadro con el modulo turtle y con un ciclo, primero se crea la pantalla después se crea el turtle, después entra en un ciclo el cual dibuja un cuadro"Este programa se llama a la librería turtle pero este programa lo importa como turtlexnx"




Este programa dibuja cuatro cuadros, los cuales se dibujan por varias funciones primero se crea la pantalla después se crea el turtle y crea la primera función la cual tiene un ciclo que dibuja el primer cuadro, se ejecuta el método que mueve la pluma para poder dibujar el segundo cuadro, después se ejecuta la función cuadro2 el cual dibuja el segundo cuadro y así sucesiva mente para dibujar lo cuatro cuadros








Métodos con operaciones

 Métodos con operaciones


En este programa se utiliza un método o función  la cual ya a otros métodos como se puede apreciar
el método peticion()  es el que se ejecuta primero des puedes de pedir los 2 datos, se iguala el area,perimetro al método calcular el cual hace la operación  después se ejecuta el método resultado el cual muestra el area y el perimetro.


Programa que calcula el perímetro dando le un valor al radio. En  este programa se ejecuta un método llamado peri el cual recibe un valor el cual va hacer el radio, al pedir el radio se ejecuta el método y hace una operación para calcular el perímetro con el radio que le dimos como valor. 


 

miércoles, 16 de septiembre de 2020

CREACIÓN DE RAÍZ, LABELS Y TEXTO(CORTOS)

 CREACIÓN DE RAÍZ, LABELS Y  TEXTO(CORTOS)

Widget Tk (Raíz)


Muy bien, pues vamos a comenzar por lo más esencial, la raíz o base de la interfaz gráfica.Recordad que la raíz es el contenedor base de todos los widgets que forman la interfaz, no tiene tamaño propio sino que se adapta a los widgets que contiene:
from tkinter import *

# Creamos la raíz
root = Tk()

# Comenzamos el bucle de aplicación, es como un while True
root.mainloop()  

Un par de opciones interesantes:

root.title("Hola mundo")     # Título de la ventana 
root.iconbitmap('hola.ico')  # Icono de la ventana, en ico o xbm en Linux
root.resizable(0, 0)         # Desactivar redimensión de ventana    

Widget Label (Etiqueta de texto)

En esta lección vamos a trabajar el widget label utilizado para mostrar textos. Suele ser texto estático, de ahí que se llame label o etiqueta de texto.

from tkinter import *
root = Tk()

label = Label(frame,text="¡Hola Mundo!")
label.pack()

root.mainloop() 

También se puede añadir directamente a la raíz y empaquetarla:

Label(root, text="¡Hola Mundo!").pack() 

Widget Entry (Texto corto)

Los campos de texto sirven generalmente para que el usuario escriba un valor. Sería un puente que equivaldría a la función input() pero gráficamente. Lo bueno es que integra muchos métodos que le permiten desde borrar el texto a desactivar el campo.

from tkinter import *
root = Tk()

entry = Entry(root)
entry.pack()

root.mainloop()

Podemos añadir una label a la izquierda para indicar información sobre el campo:

entry = Entry(root)
entry.pack(side=RIGHT)

label = Label(root, text="Nombre")
label .pack(side=LEFT)

Lo malo es que si intentamos crear más etiquetas y campos, esto se posicionan mal:

entry2 = Entry(root)
entry2.pack(side=RIGHT)

label2 = Label(root, text="Apellidos")
label2 .pack(side=LEFT)

Como sabemos Pack() intenta posicionar automáticamente los elementos y alinearlos con los parámetros side y anchor, pero en este caso no hay una distribución más allá de la alineación, por éso se ve mal.

Para solucionarlo se puede hacer de distintas formas. Por ejemplo creando dos marcos, y añadir una etiqueta y un campo de texto en cada una. De esta forma el marco hará de separador:

frame1 = Frame(root)
frame1.pack()

entry = Entry(frame1)
entry.pack(side=RIGHT)

label = Label(frame1, text="Nombre")
label.pack(side=LEFT)

frame2 = Frame(root)
frame2.pack()

entry2 = Entry(frame2)
entry2.pack(side=RIGHT)

label2 = Label(frame2, text="Apellidos")
label2.pack(side=LEFT)

Sin embargo fijaros como las labels no parecen estar alineadas bien. Claro, éso es porque el texto de Nombre y el de Apellidos no ocupa lo mismo. Podemos hacer un truco rápido añadiendo un par de espacios en Nombre:

label = Label(frame1, text="Nombre ")

Pero aún no acaba de salir bien. ¿Entonces cómo podemos posicionar bien estos widgets? La respuesta es utilizando una disposición cuadrícula, otra de las formas de tkinter para distribuir automáticamente los widgets.

Para hacerlo, en lugar del pack() utilizaremos grid() e indicaremos una fila y una columna para cada widget (borramos los frames):

label = Label(root, text="Nombre")
label.grid(row=0,column=0)

entry = Entry(root)
entry.grid(row=0,column=1)

label2 = Label(root, text="Apellidos")
label2.grid(row=1,column=0)

entry2 = Entry(root)
entry2.grid(row=1,column=1)

De esta forma no importa cuán larga sea una label, todo se posicionará siguiente la cuadrícula y cada widget quedará perfectamente separado de los otros. Quizá el problema que tenemos es que no tenemos las etiquetas justificadas al mismo lado y queda un poco raro. Aquí es donde entra el parámetro sticky (pegado) de grid():

label = Label(root, text="Nombre")
label.grid(row=0,column=0, sticky=W)

entry = Entry(root)
entry.grid(row=0,column=1)

label2 = Label(root, text="Apellidos")
label2.grid(row=1,column=0, sticky=W)

entry2 = Entry(root)
entry2.grid(row=1,column=1)

Incluso podríamos acabar de afinar la separación indicando un padding en la grid, aunque este parámetro está en todos los widgets:

label = Label(root, text="Nombre")
label.grid(row=0,column=0, sticky=W, padx=5, pady=5)

entry = Entry(root)
entry.grid(row=0,column=1, padx=5, pady=5)

label2 = Label(root, text="Apellidos")
label2.grid(row=1,column=0, sticky=W, padx=5, pady=5)

entry2 = Entry(root)
entry2.grid(row=1,column=1, padx=5, pady=5)

Como véis estoy introduciendo conceptos poco a poco para no saturaros demasiado. Para acabar esta lección os enseñaré algunos parámetros más de los campos de texto, a parte de los de colorear o cambiar la fuente que ya conocemos:

justify=LEFT, CENTER, RIGHT   # justificar el texto
state=DISABLED, NORMAL        # desactivar el campo
show="*"                      # para contraseñas mostrar * o lo que sea


Cuadro con especificaciones

Cuadro con especificaciones   Como ponerle propiedades a los dibujos o diagramas que se hagan con el modulo turtle, primero que nada se util...