Introducción a GUI
• CLI (Command Line Interface)
• GUI (Graphic User Interface)
• GUI vs CLI
• Componentes GUI
CLI (Command Line Interface)
CLI (Command Line Interface)
          WordStar
GUI (Graphic User Interface)
GUI (Graphic User Interface)
       Microsoft Word
                                                         GUI vs CLI
                                   CLI                                              GUI
           • Escalabilidad/                                             •   Menor trabajo mental
             Configuración                                              •   Simplificar tareas
           • Automatización                                             •   Visibilizar resultados
           • Control Funciones                                          •   Facilidad de Uso
             Sistema
           • Menor Uso de
             Memoria
https://tableplus.io/blog/2018/08/cli-vs-gui-which-one-is-better.html
                                                    GUI en Python
          PyQt                                           Kivy                              PySimpleGUI
                                                                                WxPython
                                  Tkinter
https://betterprogramming.pub/7-must-try-gui-libraries-in-python-34c8f6266363
          Componentes GUI
Tk: Base de la interfaz, contenedor principal
            Componentes GUI
Frame: Agrupa controles, contenedor secundario
   Componentes GUI
Label: Texto estático o imagen
     Componentes GUI
Entry: Texto corto (Caja de Texto)
    Componentes GUI
Text: Texto largo (Caja de Texto)
     Componentes GUI
Button: Botón de acción (Comando)
Diseñar una
calculadora
sencilla con
operaciones
  básicas
                      Demo – Contenedor Base
import tkinter
from tkinter import *
#Definir ventana base
raiz = Tk()
#Definir titulo de la ventana
raiz.title("Calculadora 1.0")
#Define una dimensión para la ventana
raiz.geometry('250x100')
#Adicionar Controles
label1 = tkinter.Label(raiz, text="Hola Mundo!")
label1.pack()
#Hacer la ventana de dimensión fija
raiz.resizable(False, False)
#Ejecutar script tkinter
raiz.mainloop()
                                    Demo - Controles
import tkinter                                   #Etiqueta Numero 2
from tkinter import *                            label2 = tkinter.Label(raiz, text="Número 2:")
                                                 label2.grid(row = 1, column= 0)
                                                 #Caja de Texto 2
#Definir ventana base
                                                 entry2 = tkinter.Entry(raiz)
raiz = Tk()                                      entry2.grid(row = 1, column= 1)
#Definir titulo de la ventana                    #Boton 1
raiz.title("Calculadora 1.0")                    button_add = tkinter.Button(raiz, text="Sumar")
#Define una dimensión para la ventana            button_add.grid(row=2, column=0, columnspan=2)
raiz.geometry('250x100')                         #Hacer la ventana de dimensión fija
#Adicionar Controles                             raiz.resizable(False, False)
#Etiqueta Numero 1                               #Ejecutar script Tkinter
label1 = tkinter.Label(raiz, text="Número 1:")   raiz.mainloop()
label1.grid(row = 0, column= 0)
#Caja de Texto 1
entry1 = tkinter.Entry(raiz,)
entry1.grid(row = 0, column= 1)
import tkinter                      Demo – Comandos (01)
from tkinter import *
from tkinter import messagebox as mb
#Definir ventana base
raiz = Tk()                                      #Función para el botón sumar
#Definir titulo de la ventana                    def button_add_clicked():
raiz.title("Calculadora 1.0")                      #Leer datos de las cajas
#Define una dimensión para la ventana              numero01 = int(entry1.get())
raiz.geometry('250x100')                           numero02 = int(entry2.get())
#Adicionar Controles                               #Calcular la operación con los datos (suma)
#Etiqueta Numero 1                                 resultado = numero01 + numero02
label1 = tkinter.Label(raiz, text="Número 1:")     #Desplegar el resultado de la suma
label1.grid(row = 0, column= 0)                    mb.showinfo("Resultado", "La suma es: "+str(resultado))
#Caja de Texto 1                                 #Boton 1
entry1 = tkinter.Entry(raiz,)                    button_add = tkinter.Button(raiz, text="Sumar", command=button_add_clicked)
entry1.grid(row = 0, column= 1)                  button_add.grid(row=2, column=0, columnspan=2)
#Etiqueta Numero 2                               #Hacer la ventana de dimensión fija
label2 = tkinter.Label(raiz, text="Número 2:")   raiz.resizable(False, False)
label2.grid(row = 1, column= 0)                  #Ejecutar script Tkinter
#Caja de Texto 2                                 raiz.mainloop()
entry2 = tkinter.Entry(raiz)
entry2.grid(row = 1, column= 1)
                   Taller de Diseño
Diseñar e implementar los siguientes programas en Python y
Tkinter:
1. Diseñar una calculadora sencilla para dos números reales
(suma, resta, producto y división).
2. Diseñar un convertidor de temperatura de grados centígrados
a grados Fahrenheit y viceversa.
3. Indicar el mayor valor de un vector de reales.
4. Indicar los elementos comunes entre dos vectores de enteros.
Recurso recomendado: https://www.pythontutorial.net/tkinter/