SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Python Tkinter Introducción (Interface gráfica)
Podemos interactuar con la ventana y hasta que no la cerremos no volverá a salir el cursor.
Llamamos de nuevo a la ventana y le damos un título.
Agregamos un botón a la ventana y la instrucción ‘command=ventana.iconify’ lo que hace es
minimizar.
Ahora con todo lo que hemos aprendido vamos a realizar un programa:
Este ejercicio hace que salga una ventana con un botón llamado Evento cuando le damos al
botón esta ventana se minimiza durante 3 segundos y se vuelve a reestablecer, esto lo
controla el método def parpadear():
Le hemos agregado un título en la ventana “Primera ventana en Tkinter”.
Python Práctica con Botones
Python Posicionamientos
Ejercicio propuesto por el profesor.
Este tiene que ser el resultado:
Haciendo clic en ‘Dame clic para saludar” que diga este mensaje por consola “Hola a todos”.
Haciendo clic en ‘Dame clic para minimizar” que la ventana se minimice.
Este será el código:
Python Tkinter Entradas
Vamos a ejecutar.
Seleccionaremos el botón ‘Saludo Personalizado’.
Agregar la edad y el sexo.
Este será el código:
Python Tkinter radiobutton
Python Tkinter Spinbox
Python Tkinter Messagebox
Según selecciones el botón ‘Sí’ o ‘No’ retornará una respuesta que será ‘yes’ o ‘no’ que luego
nos servirá para controlar el programa.
Según selecciones el botón ‘Aceptar’ o ‘Cancelar’ retornará una respuesta que será ‘True’ o
‘False’ que luego nos servirá para controlar el programa.
A diferencias de askquestion que retorna un yes o un no el askyesno nos retorna True o False,
si queremos trabajar con booleanos.
Reintentar retorna True y Cancelar retorna False.
Python Tkinter Agenda Parte I
Cuando ejecutemos este será el resultado:
Python Tkinter Agenda Parte II
#Agenda II
from tkinter import *
from tkinter import messagebox
lista = []
def guardar():
n = nombre.get()
ap = app.get()
am = apm.get()
c = correo.get()
t = telefono.get()
lista.append(n+"$"+ap+"$"+am+"$"+t+"$"+c)
escribirContacto()
messagebox.showinfo("Guardado","El contacto ha sido guardado en la agenda")
nombre.set("")
app.set("")
apm.set("")
correo.set("")
telefono.set("")
consultar()
def eliminar():
eliminado = conteliminar.get()
removido = False
for elemento in lista:
arreglo = elemento.split("$")
if conteliminar.get() == arreglo[3]:
lista.remove(elemento)
removido = True
escribirContacto()
consultar()
if removido:
messagebox.showinfo("Eliminar","Elemento eliminado "+eliminado)
def consultar():
r = Text(ventana, width=80, height=15)
lista.sort()
valores = []
r.insert(INSERT, "NombretApellidos PttApellido MttTeléfonottCorreon")
for elemento in lista:
arreglo = elemento.split("$")
valores.append(arreglo[3])
r.insert(INSERT, arreglo[0]+"t"+arreglo[1]+"tt"+
arreglo[2]+"tt"+arreglo[3]+"tt"+arreglo[4]+"tn")
r.place(x=20,y=230)
spinTelefono = Spinbox(ventana, value=(valores),textvariable=conteliminar).place(x=450,
y=50)
if lista ==[]:
spinTelefono = Spinbox(ventana, value=(valores)).place(x=450,y=50)
r.config(state=DISABLED)
def iniciarArchivo():
archivo = open("ag.txt","a")
archivo.close()
def cargar():
archivo = open("ag.txt","r")
linea = archivo.readline()
if linea:
while linea:
if linea[-1]=='n':
linea = linea[:-1]
lista.append(linea)
linea = archivo.readline()
archivo.close()
def escribirContacto():
archivo = open("ag.txt","w")
lista.sort()
for elemento in lista:
archivo.write(elemento+"n")
archivo.close()
ventana = Tk()
nombre = StringVar()
app = StringVar()
apm = StringVar()
correo = StringVar()
telefono = StringVar()
conteliminar = StringVar()
colorFondo = "#006"
colorLetra = "#FFF"
iniciarArchivo()
cargar()
consultar()
ventana.title("Agenda con archivos")
ventana.geometry("700x500")
ventana.configure(background = colorFondo)
etiquetaTitulo = Label(ventana, text="Agenda con Archivos",
bg=colorFondo, fg=colorLetra).place(x=270,y=10)
etiquetaN = Label(ventana, text="Nombre", bg=colorFondo,
fg=colorLetra).place(x=50, y=50)
cajaN = Entry(ventana, textvariable=nombre).place(x=150, y=50)
etiquetaApp = Label(ventana, text="Apellido Paterno", bg=colorFondo,
fg=colorLetra).place(x=50, y=80)
cajaApp = Entry(ventana, textvariable=app).place(x=150, y=80)
etiquetaApm = Label(ventana, text="Apellido Materno", bg=colorFondo,
fg=colorLetra).place(x=50, y=110)
cajaApm = Entry(ventana, textvariable=apm).place(x=150, y=110)
etiquetaT = Label(ventana, text="Teléfono", bg=colorFondo,
fg=colorLetra).place(x=50, y=140)
cajaT = Entry(ventana, textvariable=telefono).place(x=150, y=140)
etiquetaC = Label(ventana, text="Correo", bg=colorFondo,
fg=colorLetra).place(x=50, y=170)
cajaC = Entry(ventana, textvariable=correo).place(x=150, y=170)
etiquetaEliminar = Label(ventana, text="Teléfono: ", bg= colorFondo,
fg=colorLetra).place(x=370, y=50)
spinTelefono = Spinbox(ventana, textvariable=conteliminar).place(x=450, y=50)
botoGuardar = Button(ventana, text="Guardar", command=guardar, bg="#009",
fg="white").place(x=180, y=200)
botoEliminar = Button(ventana, text="Eliminar", command=eliminar, bg="#009",
fg="white").place(x=490, y=80)
mainloop()
Este será el resultado final:
Ejercicio práctico
Con todo lo aprendido hasta ahora vamos a realizar un programa que os permite realizar el
control de los libros que tengo que leer y los que me quedan pendientes de leer.
Esta será la ventana principal:
Cuando agregamos un nuevo libro nos tiene que salir el siguiente mensaje:
Ahora vamos a seleccionar un libro como se muestra con la fecha y seleccionaremos el botón
“Libro ya leído”.
Saldrá una ventana que nos pedirá información, contestamos Sí.
Con otra ventana nos muestra que dicho libro ya se ha eliminado.
Para salir de la aplicación seleccionaremos el botón Salir.
Saldrá una ventana que nos pedirá confirmación, si seleccionamos Sí el programa se cerrará.
El código del programa:
Importamos tkenter y tikenter messangebox.
Definimos en array llamada libros =…[]
Definimos la función anadir():
Definimos la función escribirLibro():
Definimos la función eliminarLibro():
Definimos la función salir():
Definimos la función iniciarArchivo():
Definimos la función cargar():
Definimos la función consultar()
La parte principal del programa:
Nota: la  que verás al final de algunas líneas es para decir que la siguiente línea es la
continuación de la anterior, nos permite partir líneas que son muy largas pero que no modifique
la ejecución del programa.
Python Tkinter Imágenes
Python Tkinter Canvas Parte 1
Python Tkinter Canvas Parte 2
En la siguiente página web podrás encontrar una paleta de colores:
http://es.bleach.wikia.com/wiki/Ayuda:Paleta_de_colores
Pytohon Tkinter Canvas Parte 3
Tkinter GUI Python Introducción

Más contenido relacionado

La actualidad más candente

Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Andres Rivero
 
Introduction to Python - Training for Kids
Introduction to Python - Training for KidsIntroduction to Python - Training for Kids
Introduction to Python - Training for KidsAimee Maree Forsstrom
 
Estructura basica de un programa en C++
Estructura basica de un programa en C++Estructura basica de un programa en C++
Estructura basica de un programa en C++juliancetis109
 
Trabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje cTrabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje coswnes92
 
Ejercicios de programacion if - switch-case
Ejercicios de programacion   if  -   switch-caseEjercicios de programacion   if  -   switch-case
Ejercicios de programacion if - switch-caseGuillermo Viaje
 
Presentacion de Visual Basic
Presentacion de Visual BasicPresentacion de Visual Basic
Presentacion de Visual BasicFrancheska Parras
 
PYTHON - EXTRA Chapter GUI - MAULIK BORSANIYA
PYTHON - EXTRA Chapter GUI - MAULIK BORSANIYAPYTHON - EXTRA Chapter GUI - MAULIK BORSANIYA
PYTHON - EXTRA Chapter GUI - MAULIK BORSANIYAMaulik Borsaniya
 
Formulario HTML-PHP dirigido a una Base de datos
Formulario HTML-PHP dirigido a una Base de datosFormulario HTML-PHP dirigido a una Base de datos
Formulario HTML-PHP dirigido a una Base de datosCursando Desarrollo Web
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxjgs07
 
Joptionpane
JoptionpaneJoptionpane
Joptionpanepauslt
 
Pasos para crear calculadora en c# rivera y g
Pasos para crear calculadora en c# rivera y gPasos para crear calculadora en c# rivera y g
Pasos para crear calculadora en c# rivera y gSantos Rivera Luján
 
EJECICIO DE BASE DE DATOS TIENDA SQL
EJECICIO DE BASE DE DATOS TIENDA SQLEJECICIO DE BASE DE DATOS TIENDA SQL
EJECICIO DE BASE DE DATOS TIENDA SQLRuth Cujilan
 
Wix web design tutorial
Wix web design tutorialWix web design tutorial
Wix web design tutorialwgraham1323
 
Algoritmo para el juego del gato
Algoritmo para el juego del gatoAlgoritmo para el juego del gato
Algoritmo para el juego del gatoEdwinVega49
 
Como insertar una imagen en eclipse java
Como insertar una imagen en eclipse javaComo insertar una imagen en eclipse java
Como insertar una imagen en eclipse javaJosué Naquid
 

La actualidad más candente (20)

Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)
 
Ejercicios de qbasic
Ejercicios de qbasicEjercicios de qbasic
Ejercicios de qbasic
 
Exprimiendo el ORM de Django
Exprimiendo el ORM de DjangoExprimiendo el ORM de Django
Exprimiendo el ORM de Django
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Html actividades 1
Html actividades  1Html actividades  1
Html actividades 1
 
Introduction to Python - Training for Kids
Introduction to Python - Training for KidsIntroduction to Python - Training for Kids
Introduction to Python - Training for Kids
 
Estructura basica de un programa en C++
Estructura basica de un programa en C++Estructura basica de un programa en C++
Estructura basica de un programa en C++
 
Trabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje cTrabajo de ejercicios de lenguaje c
Trabajo de ejercicios de lenguaje c
 
Ejercicios de programacion if - switch-case
Ejercicios de programacion   if  -   switch-caseEjercicios de programacion   if  -   switch-case
Ejercicios de programacion if - switch-case
 
Presentacion de Visual Basic
Presentacion de Visual BasicPresentacion de Visual Basic
Presentacion de Visual Basic
 
PYTHON - EXTRA Chapter GUI - MAULIK BORSANIYA
PYTHON - EXTRA Chapter GUI - MAULIK BORSANIYAPYTHON - EXTRA Chapter GUI - MAULIK BORSANIYA
PYTHON - EXTRA Chapter GUI - MAULIK BORSANIYA
 
Formulario HTML-PHP dirigido a una Base de datos
Formulario HTML-PHP dirigido a una Base de datosFormulario HTML-PHP dirigido a una Base de datos
Formulario HTML-PHP dirigido a una Base de datos
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptx
 
Joptionpane
JoptionpaneJoptionpane
Joptionpane
 
Pasos para crear calculadora en c# rivera y g
Pasos para crear calculadora en c# rivera y gPasos para crear calculadora en c# rivera y g
Pasos para crear calculadora en c# rivera y g
 
Python para principiantes
Python para principiantesPython para principiantes
Python para principiantes
 
EJECICIO DE BASE DE DATOS TIENDA SQL
EJECICIO DE BASE DE DATOS TIENDA SQLEJECICIO DE BASE DE DATOS TIENDA SQL
EJECICIO DE BASE DE DATOS TIENDA SQL
 
Wix web design tutorial
Wix web design tutorialWix web design tutorial
Wix web design tutorial
 
Algoritmo para el juego del gato
Algoritmo para el juego del gatoAlgoritmo para el juego del gato
Algoritmo para el juego del gato
 
Como insertar una imagen en eclipse java
Como insertar una imagen en eclipse javaComo insertar una imagen en eclipse java
Como insertar una imagen en eclipse java
 

Similar a Tkinter GUI Python Introducción

Similar a Tkinter GUI Python Introducción (20)

Informe Tecnico Topicos Avanzados de Programacion
 Informe Tecnico Topicos Avanzados de Programacion Informe Tecnico Topicos Avanzados de Programacion
Informe Tecnico Topicos Avanzados de Programacion
 
Codigos programables
Codigos programablesCodigos programables
Codigos programables
 
Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
 
Software para cálculos matemáticos
Software para cálculos matemáticosSoftware para cálculos matemáticos
Software para cálculos matemáticos
 
Programa 2
Programa 2Programa 2
Programa 2
 
Programa 2
Programa 2Programa 2
Programa 2
 
Programa 2
Programa 2Programa 2
Programa 2
 
Guia practicaiuprg3
Guia practicaiuprg3Guia practicaiuprg3
Guia practicaiuprg3
 
Programa2
Programa2Programa2
Programa2
 
Programa2 eclipse
Programa2 eclipsePrograma2 eclipse
Programa2 eclipse
 
Programa 2
Programa 2Programa 2
Programa 2
 
Programa2
Programa2 Programa2
Programa2
 
Android
AndroidAndroid
Android
 
Objetivo interfas a codigo
Objetivo interfas a codigoObjetivo interfas a codigo
Objetivo interfas a codigo
 
Aplicación zirconia
Aplicación zirconiaAplicación zirconia
Aplicación zirconia
 
Plan menus swing
Plan menus swingPlan menus swing
Plan menus swing
 
Jueves Part2
Jueves Part2Jueves Part2
Jueves Part2
 
Programando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte unoProgramando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte uno
 
Codeblocks ejercicios básicos
Codeblocks ejercicios básicos Codeblocks ejercicios básicos
Codeblocks ejercicios básicos
 
Informe#21
Informe#21Informe#21
Informe#21
 

Último

plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfJonathanCovena1
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 

Último (20)

plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 

Tkinter GUI Python Introducción

  • 1. Python Tkinter Introducción (Interface gráfica) Podemos interactuar con la ventana y hasta que no la cerremos no volverá a salir el cursor.
  • 2. Llamamos de nuevo a la ventana y le damos un título. Agregamos un botón a la ventana y la instrucción ‘command=ventana.iconify’ lo que hace es minimizar. Ahora con todo lo que hemos aprendido vamos a realizar un programa: Este ejercicio hace que salga una ventana con un botón llamado Evento cuando le damos al botón esta ventana se minimiza durante 3 segundos y se vuelve a reestablecer, esto lo controla el método def parpadear():
  • 3. Le hemos agregado un título en la ventana “Primera ventana en Tkinter”. Python Práctica con Botones
  • 4.
  • 6. Ejercicio propuesto por el profesor. Este tiene que ser el resultado: Haciendo clic en ‘Dame clic para saludar” que diga este mensaje por consola “Hola a todos”. Haciendo clic en ‘Dame clic para minimizar” que la ventana se minimice. Este será el código:
  • 8. Seleccionaremos el botón ‘Saludo Personalizado’. Agregar la edad y el sexo. Este será el código:
  • 12. Según selecciones el botón ‘Sí’ o ‘No’ retornará una respuesta que será ‘yes’ o ‘no’ que luego nos servirá para controlar el programa.
  • 13. Según selecciones el botón ‘Aceptar’ o ‘Cancelar’ retornará una respuesta que será ‘True’ o ‘False’ que luego nos servirá para controlar el programa. A diferencias de askquestion que retorna un yes o un no el askyesno nos retorna True o False, si queremos trabajar con booleanos.
  • 14. Reintentar retorna True y Cancelar retorna False.
  • 16. Cuando ejecutemos este será el resultado:
  • 17. Python Tkinter Agenda Parte II #Agenda II from tkinter import * from tkinter import messagebox lista = [] def guardar(): n = nombre.get() ap = app.get() am = apm.get() c = correo.get() t = telefono.get() lista.append(n+"$"+ap+"$"+am+"$"+t+"$"+c) escribirContacto() messagebox.showinfo("Guardado","El contacto ha sido guardado en la agenda") nombre.set("") app.set("") apm.set("") correo.set("") telefono.set("") consultar() def eliminar(): eliminado = conteliminar.get() removido = False for elemento in lista: arreglo = elemento.split("$") if conteliminar.get() == arreglo[3]: lista.remove(elemento) removido = True escribirContacto() consultar() if removido: messagebox.showinfo("Eliminar","Elemento eliminado "+eliminado) def consultar(): r = Text(ventana, width=80, height=15) lista.sort() valores = [] r.insert(INSERT, "NombretApellidos PttApellido MttTeléfonottCorreon") for elemento in lista: arreglo = elemento.split("$") valores.append(arreglo[3]) r.insert(INSERT, arreglo[0]+"t"+arreglo[1]+"tt"+
  • 18. arreglo[2]+"tt"+arreglo[3]+"tt"+arreglo[4]+"tn") r.place(x=20,y=230) spinTelefono = Spinbox(ventana, value=(valores),textvariable=conteliminar).place(x=450, y=50) if lista ==[]: spinTelefono = Spinbox(ventana, value=(valores)).place(x=450,y=50) r.config(state=DISABLED) def iniciarArchivo(): archivo = open("ag.txt","a") archivo.close() def cargar(): archivo = open("ag.txt","r") linea = archivo.readline() if linea: while linea: if linea[-1]=='n': linea = linea[:-1] lista.append(linea) linea = archivo.readline() archivo.close() def escribirContacto(): archivo = open("ag.txt","w") lista.sort() for elemento in lista: archivo.write(elemento+"n") archivo.close() ventana = Tk() nombre = StringVar() app = StringVar() apm = StringVar() correo = StringVar() telefono = StringVar() conteliminar = StringVar() colorFondo = "#006" colorLetra = "#FFF" iniciarArchivo() cargar() consultar() ventana.title("Agenda con archivos") ventana.geometry("700x500") ventana.configure(background = colorFondo) etiquetaTitulo = Label(ventana, text="Agenda con Archivos", bg=colorFondo, fg=colorLetra).place(x=270,y=10)
  • 19. etiquetaN = Label(ventana, text="Nombre", bg=colorFondo, fg=colorLetra).place(x=50, y=50) cajaN = Entry(ventana, textvariable=nombre).place(x=150, y=50) etiquetaApp = Label(ventana, text="Apellido Paterno", bg=colorFondo, fg=colorLetra).place(x=50, y=80) cajaApp = Entry(ventana, textvariable=app).place(x=150, y=80) etiquetaApm = Label(ventana, text="Apellido Materno", bg=colorFondo, fg=colorLetra).place(x=50, y=110) cajaApm = Entry(ventana, textvariable=apm).place(x=150, y=110) etiquetaT = Label(ventana, text="Teléfono", bg=colorFondo, fg=colorLetra).place(x=50, y=140) cajaT = Entry(ventana, textvariable=telefono).place(x=150, y=140) etiquetaC = Label(ventana, text="Correo", bg=colorFondo, fg=colorLetra).place(x=50, y=170) cajaC = Entry(ventana, textvariable=correo).place(x=150, y=170) etiquetaEliminar = Label(ventana, text="Teléfono: ", bg= colorFondo, fg=colorLetra).place(x=370, y=50) spinTelefono = Spinbox(ventana, textvariable=conteliminar).place(x=450, y=50) botoGuardar = Button(ventana, text="Guardar", command=guardar, bg="#009", fg="white").place(x=180, y=200) botoEliminar = Button(ventana, text="Eliminar", command=eliminar, bg="#009", fg="white").place(x=490, y=80) mainloop() Este será el resultado final:
  • 20. Ejercicio práctico Con todo lo aprendido hasta ahora vamos a realizar un programa que os permite realizar el control de los libros que tengo que leer y los que me quedan pendientes de leer. Esta será la ventana principal: Cuando agregamos un nuevo libro nos tiene que salir el siguiente mensaje: Ahora vamos a seleccionar un libro como se muestra con la fecha y seleccionaremos el botón “Libro ya leído”.
  • 21. Saldrá una ventana que nos pedirá información, contestamos Sí. Con otra ventana nos muestra que dicho libro ya se ha eliminado. Para salir de la aplicación seleccionaremos el botón Salir.
  • 22. Saldrá una ventana que nos pedirá confirmación, si seleccionamos Sí el programa se cerrará. El código del programa: Importamos tkenter y tikenter messangebox. Definimos en array llamada libros =…[] Definimos la función anadir(): Definimos la función escribirLibro(): Definimos la función eliminarLibro():
  • 23. Definimos la función salir(): Definimos la función iniciarArchivo(): Definimos la función cargar():
  • 24. Definimos la función consultar() La parte principal del programa:
  • 25. Nota: la que verás al final de algunas líneas es para decir que la siguiente línea es la continuación de la anterior, nos permite partir líneas que son muy largas pero que no modifique la ejecución del programa. Python Tkinter Imágenes
  • 27.
  • 29. En la siguiente página web podrás encontrar una paleta de colores: http://es.bleach.wikia.com/wiki/Ayuda:Paleta_de_colores