T
LENGUAJES DE PROGRAMACIÓN
II Ciclo
Laboratorio 7: Interfaz Gráfica en Python NOTA
Alumnos:
1. Objetivos
● Comprender el uso de Listas y Diccionarios
● Identificar los usos y tipos de Listas y Diccionarios
● Implementar aplicaciones con Listas y Diccionarios
Ejercicio 1: Crear un programa para visualizar una ventana. Copiar el programa de abajo, compilar,
analizar y comentar lo que sucede.
#Crear una ventana con Tkinter
from tkinter import* #llama a toda la librería tkinter
# Configurar la ventana
root = Tk() #Instanciamos
[Link]("400x200") #Configuramos el Ancho x Altura de la ventana
[Link]("Tecsup") #Título de la ventana
[Link](bg="Pink") #Fondo de la ventana
[Link]("[Link]") #Llamamos al archivo de tipo ico
#Creamos una etiqueta
label_1 = Label(root, text="Hola Mecatrónico", bg="black", fg="white", font="curier 18 bold")
#Posicionamos La etiqueta con el método pack
label_1.pack(expand=True)
[Link]()#Bucle que actualiza continuamente la venta
En este caso no puede usar el search por un tema de bug pero lo ise en el cdm ,luego de
importar se crea una variable y en este caso la variable ventana es una instancia de Tk,
gracias a ello la variable ventana vendría configurarse ya que este tiene el “ADN” de la
librería incluida, luego se definió el tamaño del a ventana, el titulo con el que vendría, el
fondo, y un icono, seguidamente se le crea una etiqueta, se le indica que estará dentro de la
ventana, pero también se le indica que esta etiqueta tendrá un texto y se le asigna que tipo
de letra tendrá, el color de fondo y el color de la letra, sin embargo, se le debe indicar como
o en que parte estará la etiqueta, en este caso se expandirá, as i este centrándose. La
etiqueta tiende a ser usado para textos, y después de crearse cada ventana se debe ubicar
el mainloop debido que la ventana se actualiza constantemente.
Ejercicio 2: Crear un programa para visualizar una ventana. Copiar el programa de abajo, compilar,
analizar y comentar lo que sucede.
Lab. N° 7 Interfaz Gráfica en Python
#Crear una ventana con Tkinter
from tkinter import* #llama a toda la librería tkinter
# Configurar la ventana
root = Tk() #Instanciamos
[Link]("400x200") #Configuramos el Ancho x Altura de la ventana
[Link]("Tecsup") #Título de la ventana
[Link](bg="Pink") #Fondo de la ventana
[Link]("[Link]") #Llamamos al archivo de tipo ico
#Creamos una etiqueta y entrada
label_1 = Label(root, text="Hola Mecatrónico", bg="black", fg="white",
font="curier 18 bold")
entry_1 = Entry(root)
boton_1 = Button(root, text="Boton")
#Posicionamiento relativo (pack)
label_1.pack(side=TOP, pady=30)
entry_1.pack(expand=True)
boton_1.pack(side=BOTTOM, pady=30)
#Bucle que actualiza continuamente la ventana
[Link]()
Nuevamente se importa la librería tkinter para crear una ventana, sin embargo, luego de
crear la etiqueta, se crea la entrada, que permitirá ingresar datos, también se crea botón, y
todas estas se ubican con pack en la ventana, pero se le debe indicar como se le ubicara en
la ventana, en este caso la etiqueta se ubicara arriba, pero no está en la misma esquina,
debido a que se le indica que tomara una distancia de 30, pero se le indica que la entrada
estará en el centro, y finalmente el botón estará en la parte inferior, pero no está
completamente en la parte inferior debido a que se le indica que habrá una separación de
30, finalmente el mainloop para que actualice constantemente la ventana.
Docente: Armando Sarco Montiel Pág. 1
Lab. N° 7 Interfaz Gráfica en Python
Ejercicio 3: Crear un programa para visualizar una ventana. Copiar el programa de abajo, compilar,
analizar y comentar lo que sucede.
#Crear una ventana con Tkinter
from tkinter import* #llama a toda la librería tkinter
# Configurar la ventana
root = Tk() #Instanciamos
[Link]("400x200") #Configuramos el Ancho x Altura de la ventana
[Link]("Tecsup") #Título de la ventana
[Link](bg="Pink") #Fondo de la ventana
[Link]("[Link]") #Llamamos al archivo de tipo ico
#Creamos una etiqueta y entrada
label_1 = Label(root, text="Hola Mecatrónico", bg="black", fg="white",
font="curier 18 bold")
entry_1 = Entry(root)
boton_1 = Button(root, text="Boton")
#Posicionamiento grilla (grid)
label_1.grid(row=0, column=0, padx=100, pady=30)
entry_1.grid(row=1, column=0)
boton_1.grid(row=2, column=0, pady=30)
#Bucle que actualiza continuamente la ventana
[Link]()
Se importa la librería tkinter para así crear la ventana, también se le agrega un número, y se
usa un fondo negro, y se crea una etiqueta gracias a Label, la entrada por Entry, y el botón
por Button, para así añadirle un texto color y tipo de letras. Seguidamente se ubica, pero
esta vez se usa el grid, que viene a ser las grillas que se indica por fila y columna, tomando
esto en cuenta se aprecia que se ubicaron los elementos en diferentes filas y todo en la
misma columna, partiendo del punto 0, y se añade el padx, y pady para indicar la separación
debido a que estarían muy junto todo lo que está en la ventana.
Docente: Armando Sarco Montiel Pág. 2
Lab. N° 7 Interfaz Gráfica en Python
Ejercicio 4: Cambiar todas las posiciones a absolutas y ordenar la ventana como en el ejercicio
anterior. Compilar, analizar y comentar lo que sucede.
#Crear una ventana con Tkinter
from tkinter import* #llama a toda la librería tkinter
# Configurar la ventana
root = Tk() #Instanciamos
[Link]("400x200") #Configuramos el Ancho x Altura de la ventana
[Link]("Tecsup") #Título de la ventana
[Link](bg="Pink") #Fondo de la ventana
[Link]("[Link]") #Llamamos al archivo de tipo ico
#Creamos una etiqueta y entrada
label_1 = Label(root, text="Hola Mecatrónico", bg="black", fg="white",
font="curier 18 bold")
entry_1 = Entry(root)
boton_1 = Button(root, text="Boton")
#Posicionamiento grilla (grid)
label_1.place(x=0, y=0)
entry_1.place(x=0, y=0)
boton_1.place(x=0, y=0)
#Bucle que actualiza continuamente la ventana
[Link]()
Al parecer hay un fallo al escribir el programa y todo va a un lugar pero si se cumplen como los
programas anteriores los requerido
Ejercicio 5: Completar el programa, tal como se muestra en la imagen de abajo para el control de
una calculadora con las cuatro operaciones básicas
Docente: Armando Sarco Montiel Pág. 3
Lab. N° 7 Interfaz Gráfica en Python
#Crear una ventana con Tkinter
from tkinter import* #llama a toda la librería tkinter
# Configurar la ventana principal root
root = Tk()#Instanciamos pantalla principal
[Link]('Calculadora') #Título de la ventana
[Link]('270x130') #Configuramos el Ancho x Altura de la ventana
[Link](bg="gray90") #Fondo de la ventana
[Link]("[Link]") #Llamamos al archivo de tipo ico
#Función con parámetros
def calculadora(x):
num_1 = float(entrada_1.get()) #Se obtiene el valor Entry (siempre es string)
num_2 = float(entrada_2.get())
if x==1: #suma
res = num_1 + num_2
elif x==2: #resta
res = num_1 - num_2
label_0['text'] = res
#Creamos los frames, etiquetas, entradas y botones
fm1 = Frame(root,padx=5,pady=5) #Frame 1
label_0 = Label(fm1,bd=1,width=26,height=2,bg="gray90",relief="sunken",font="calibri 14 bold")
fm2 = Frame(root) #Frame 2
label_1 = Label(fm2, text="Ingresa 1° número")
label_2 = Label(fm2, text="Ingresa 2° número")
entrada_1 = Entry(fm2, font="calibri 12")
entrada_2 = Entry(fm2, font="calibri 12")
fm3=Frame(root) #Frame 3
boton_1=Button(fm3,text="SUMAR",fg="white",bg="gray35",font="calibri 11
bold",command=lambda:calculadora(1))
boton_2=Button(fm3,text="RESTAR",fg="white",bg="gray35",font="calibri 11
bold",command=lambda:calculadora(2))
#Posicionamiento
[Link](side=TOP) #Posicionamiento relativo (pack)
label_0.pack() #Posicionamiento relativo (pack)
[Link](side=TOP,) #Posicionamiento relativo (pack)
label_1.grid(row=0, column=0) #Posicionamiento tipo grilla (grid)
entrada_1.grid(row=0, column=1) #Posicionamiento tipo grilla (grid)
label_2.grid(row=1, column=0) #Posicionamiento tipo grilla (grid)
entrada_2.grid(row=1, column=1) #Posicionamiento tipo grilla (grid)
[Link](side=TOP,) #Posicionamiento relativo (pack)
boton_1.pack(side=LEFT, expand=True) #Posicionamiento relativo (pack)
boton_2.pack(side=LEFT, expand=True) #Posicionamiento relativo (pack)
[Link]() #Bucle que actualiza continuamente la ventana
Docente: Armando Sarco Montiel Pág. 4
Lab. N° 7 Interfaz Gráfica en Python
Se importa la librería tkinter, se le da una medida y un título, icono, además se le detalla
mediante el método rezisable que la ventana no se podrá expandir, seguidamente se define
lo que hará de contador, se crea 2 variables y cada uno convertirá a número flotante los
datos ingresados en las entradas, se le detalla que el valor de x cambiara y según el valor
que este sea se sumara, restara, multiplicara o dividirá, todas estas operaciones de las
entradas se igualara a la variable “y”, se detalla que una etiqueta cambiara, convertirá en
texto la operación que se hará según el valor de x, ósea la variable y.
Ejercicio 6: Crear un formulario de registro que se almacene en un archivo de texto y se visualiza en
una ventana. Copiar el programa de abajo, compilar, analizar y comentar lo que sucede.
#Formulario de registro
from tkinter import * # Carga todas las librerías de tkinter
# Manipular los datos de los campos de registro
def send_data():
username_info = [Link]()
password_info = [Link]()
fullname_info = [Link]()
age_info = str([Link]())
print(username_info,"\t", password_info,"\t", fullname_info,"\t", age_info)
# Abrir y escribir datos en un archivo
file = open("[Link]", "a")
[Link](username_info)
[Link]("\t")
[Link](password_info)
[Link]("\t")
[Link](fullname_info)
[Link]("\t")
[Link](age_info)
[Link]("\t\n")
[Link]()
print(" Nuevo usuario registrado. Username: {} | FullName: {} | Age: {}
".format(username_info, fullname_info, age_info))
# Borrar datos del evento previo
username_entry.delete(0, END)
password_entry.delete(0, END)
fullname_entry.delete(0, END)
age_entry.delete(0, END)
# Crear una nueva instancia tipo Class Tk()
ventana = Tk()
[Link]("[Link]")
[Link]("290x380") #Width x Height
[Link]("Formulario de registro - Python + Tkinter")
[Link](False,False)
[Link](background = "#213141")
main_title = Label(text = "Lenguajes de Programación", font = ("Cambria", 14), bg = "#00AEEF",
fg = "White", width = "500", height = "2")
main_title.pack()
# Definir los campos de la etiqueta
username_label = Label(text = "Username", bg = "#FFEEDD")
username_label.place(x = 22, y = 70)
password_label = Label(text = "Password", bg = "#FFEEDD")
password_label.place(x = 22, y = 130)
fullname_label = Label(text = "Fullname", bg = "#FFEEDD")
fullname_label.place(x = 22, y = 190)
age_label = Label(text = "Age", bg = "#FFEEDD")
age_label.place(x = 22, y = 250)
# Obetner y almacenar los datos del usuario
username = StringVar()
password = StringVar()
fullname = StringVar()
age = StringVar()
username_entry = Entry(textvariable = username, width = "40")
Docente: Armando Sarco Montiel Pág. 5
Lab. N° 7 Interfaz Gráfica en Python
password_entry = Entry(textvariable = password, width = "40", show = "*")
fullname_entry = Entry(textvariable = fullname, width = "40")
age_entry = Entry(textvariable = age, width = "40")
username_entry.place(x = 22, y = 100)
password_entry.place(x = 22, y = 160)
fullname_entry.place(x = 22, y = 220)
age_entry.place(x = 22, y = 280)
# Boton de envio
submit_btn = Button(ventana,text = "Grabar Información", fg = "White", width = "30", height =
"2", command =
send_data, bg = "#00AEEF", font= ("Helvetic",10))
submit_btn.place(x = 22, y = 320)
[Link]()
Se importa la librería tkinter y se define una variable igualando variables a las entradas que
estarán en la ventana y se le indica al momento que estos obtengan la información estos se
imprimirán separados, seguidamente se le indicara al bloc de notas que añadirá los datos
obtenidos de las entradas, y estas se guardaran separadas, pero también se salta a la otra
línea antes de cerrarse, para que de paso a nueva información de alguien que ingrese los
datos. También se le indica que los datos de las entradas se eliminaran. Una vez definido lo
que deberá hacer la ventana. Se creará las etiquetas de textos con tamaños distintos, y
luego se crea variables StringVar, este declara que lo obtenido será una variable de tipo
cadena. Se crea las entradas, el botón para grabar y finalmente se da ubicación a las
etiquetas usando el posicionamiento place tanto como en las entradas y el botón, no
olvidándonos del mainloop, para que la ventana se actualice constantemente. Para
confirmar que los datos se guardan en un bloc de notas en la captura se observa un bloc de
notas con datos de personas ya registradas.
Ejercicio 7 (tarea para la casa): Completar y mejorar el programa de abajo para que te muestre una
interfaz gráfica con en el Tkinter
import os
[Link]("cls")
nota = 0; valor = 0; num = 0;
notas = list()
def ingresarNotas():
Docente: Armando Sarco Montiel Pág. 6
Lab. N° 7 Interfaz Gráfica en Python
global num #global es para compartir datos entre funciones
global notas
global nNotas
nNotas = int(input("Ingrese el número de notas: "))
for i in range(nNotas):
num = int(input(f"Introduce la nota {i+1}: "))
notas = notas + [num]
[Link]("pause")
[Link]("cls")
def notasIngresadas():
global num
global notas
global nNotas
print("Las notas ingresadas son:", nNotas)
print(notas)
[Link]("pause")
[Link]("cls")
#def notasDeMenorAMayor():
#def promedioNotas():
#def notasAprobadas():
#def notasDesaprobados():
#def borrarDatos():
#def minmax():
while True:
print("Seleccione una opción: ")
print("|-------------------------------------|--------|")
print("| | |")
print("| Función | Opción |")
print("| | |")
print("|-------------------------------------|--------|")
print("| Ingresar notas | 1 |")
print("|-------------------------------------|--------|")
print("| Mostrar notas ingresadas | 2 |")
print("|-------------------------------------|--------|")
print("| Ordenar de menor a mayor | 3 |")
print("|-------------------------------------|--------|")
print("| Mostrar promedio | 4 |")
print("|-------------------------------------|--------|")
print("| Mostrar total de aprobados | 5 |")
print("|-------------------------------------|--------|")
print("| Mostrar total de desaprobados | 6 |")
print("|-------------------------------------|--------|")
print("| Borrar datos ingresadas | 7 |")
print("|-------------------------------------|--------|")
print("| Mostrar nota min. y max. | 8 |")
print("|-------------------------------------|--------|")
print("| Salir del sistema | 9 |")
print("|-------------------------------------|--------|")
print("")
valor=int(input("Ingrese una opción del 1 al 9: "))
[Link]("pause")
[Link]("cls")
if valor == 1:
ingresarNotas()
continue
elif valor == 2:
notasIngresadas()
Docente: Armando Sarco Montiel Pág. 7
Lab. N° 7 Interfaz Gráfica en Python
Disculpe pero mi pc se encuentra con fallos y hay programas que fallan y otros que simplemente no
aparecen como es el caos de este ejercicio
1:Observavion
_Las pc deben tener bien instalados los programas para no tener los
problemas que e tenido en este informe
-El método revisable al momento de crear una ventana es para que esta
ventana no pueda se ampliada
-El StingVar tiene la función de convertir lo introducido a cadena
2. Conclusiones:
El posicionamiento pack, viene a ser para indicar una posición respecto a la
ventana
- El posicionamiento en grilla viene a tomarse que la ventana se divida en filas y
columnas
- El posicionamiento place es como una manera manual de indicar la posición de
elementos que están dentro de la ventana en x o y
Docente: Armando Sarco Montiel Pág. 8