Tutorial de Tkinter Basico

6
Curso de Python Básico TUTORIAL DE MANEJO DEL TKINTER Comenzaremos con el código de una ventana. Este código es lo básico para instanciar una ventana #importamos el modulo tkinter from Tkinter import * #Creamos una ventana ventana = Tk() #Mostramos la ventana ventana.mainloop() Para manipular la ventana su tamaño y ubicación en la pantalla usamos el método geometry y para darle un título el método title. #importamos el modulo tkinter from Tkinter import * #Creamos una ventana ventana = Tk() #Asignar un tamaño a la ventana #geometry('ancho X alto + posx + posy' ventana.geometry('500x300+100+100') #Asignamos un título a la ventana ventana.title('Ventana con Etiquetas (Labels)') #Inicializamos el procedimiento #se hace cuando ya terminamos de crear todos los widgets ventana.mainloop() Seguiremos añadiendo código de manipulación de la ventana con el pasar del tutorial. Label En el siguiente código veremos cómo crear un label y colocarlo a la ventana con el método pack pero el problema es que se colocan automáticamente. from Tkinter import * ventana = Tk() ventana.geometry('500x300+100+100') ventana.title('Ventana con Etiquetas (Labels)') #Creamos Las etiquetas lblUsuario = Label(text='Usuario') Giancarlo Escobedo Valdivia

description

Iniciar con el entorno Grafico de Python

Transcript of Tutorial de Tkinter Basico

Page 1: Tutorial de Tkinter Basico

Curso de Python Básico

TUTORIAL DE MANEJO DEL TKINTER

Comenzaremos con el código de una ventana. Este código es lo básico para instanciar una ventana

#importamos el modulo tkinterfrom Tkinter import *#Creamos una ventanaventana = Tk()#Mostramos la ventanaventana.mainloop()

Para manipular la ventana su tamaño y ubicación en la pantalla usamos el método geometry y para darle un título el método title.

#importamos el modulo tkinterfrom Tkinter import *#Creamos una ventanaventana = Tk()#Asignar un tamaño a la ventana#geometry('ancho X alto + posx + posy'ventana.geometry('500x300+100+100')#Asignamos un título a la ventanaventana.title('Ventana con Etiquetas (Labels)')#Inicializamos el procedimiento#se hace cuando ya terminamos de crear todos los widgetsventana.mainloop()

Seguiremos añadiendo código de manipulación de la ventana con el pasar del tutorial.

Label

En el siguiente código veremos cómo crear un label y colocarlo a la ventana con el método pack pero el problema es que se colocan automáticamente.

from Tkinter import *ventana = Tk()ventana.geometry('500x300+100+100')ventana.title('Ventana con Etiquetas (Labels)')#Creamos Las etiquetaslblUsuario = Label(text='Usuario')lblDatos = Label(text='Giancarlo Escobedo')#Agregamos la eiqueta lblUsuarioa la ventanalblUsuario.pack()lblDatos.pack()ventana.mainloop()

Para poder darle una ubicación precisa en el ventana utilizaremos otro método llamado place en vez de pack. Hay que tener cuidado ya que las medidas que usamos es en pixeles y no es caracteres por lo que hay que estar probando hasta llegar a la ubicación deseada.

Giancarlo Escobedo Valdivia

Page 2: Tutorial de Tkinter Basico

Curso de Python Básico

from Tkinter import *ventana = Tk()ventana.geometry('500x300+100+100')ventana.title('Ventana con Etiquetas (Labels)')#Creamos Las etiquetaslblUsuario = Label(text='Usuario').place(x=100,y=20)lblDatos = Label(text='Giancarlo Escobedo').place(x=210,y=20)ventana.mainloop()

Otra forma de dar ubicación a los labels es con el método grib. Hay que tener en cuenta que utilizaremos la ventana como una grilla. También utilizaremos una función para cambiar el color y el relleno de la etiqueta y la función sticky para la ubicación del texto.

from Tkinter import *ventana = Tk()ventana.geometry('500x300+100+100')ventana.title('Ventana con Etiquetas (Labels)')#Creamos Las etiquetas#fg es foreground color del texto#bg es background colo de rellenolblUsuario = Label(text='Usuario',fg='blue',bg ='yellow').grid(row=0,column=0)lblDatos = Label(text='GianEsco',fg='green').grid(row=0,column=1,sticky=W)ventana.mainloop()

Campos de texto

Para los campos de texto necesitaremos crea una variable del tipo StrinrVar() para utilizar método del campo de texto, Utilizaremos la palabra entry para crear campos de texto, el campo de texto tiene un tamaño de 20 caracteres por defecto por lo cual con la propiedad width podemos modificarla, utilizamos el método set para ingresar texto.

#importamos el modulo tkinterfrom Tkinter import *ventana = Tk()ventana.geometry('500x300+100+100')ventana.title('Ventana con Cuadro de texto')#Creamos Las etiquetas fontlblUsuario = Label(text='Usuario',font=('Verdana',14)).place(x=10,y=10)lblNombre = Label(text='Nombre',font=('Agency FB',14)).place(x=10,y=50)#Creamos campos de textoentradaU = StringVar()txtUsuario = Entry(ventana,textvariable=entradaU).place(x=100,y=20)entradaN = StringVar()txtNombre = Entry(ventana,textvariable=entradaN,width = 30).place(x=100,y=60)entradaU.set('LP0001')entradaN.set('Giancarlo Escobedo Valdivia')ventana.mainloop()

Giancarlo Escobedo Valdivia

Page 3: Tutorial de Tkinter Basico

Curso de Python Básico

Botones

Para la creación de Botones utilizaremos el método Button.

#importamos el modulo tkinterfrom Tkinter import *ventana = Tk()ventana.geometry('500x300+100+100')ventana.title('Ventana con Cuadro de texto')#Creamos Las etiquetas fontlblUsuario = Label(text='Usuario',font=('Verdana',14)).place(x=10,y=10)lblNombre = Label(text='Nombre',font=('Agency FB',14)).place(x=10,y=50)#Creamos campos de textoentradaU = StringVar()txtUsuario = Entry(ventana,textvariable=entradaU).place(x=100,y=20)entradaN = StringVar()txtNombre = Entry(ventana,textvariable=entradaN,width = 30).place(x=100,y=60)#Creamos BotonesbtnSaludar = Button(ventana,text='Saludar',font=('Arial',12),width = 15).place(x=300,y=20)btnDespedir = Button(ventana,text='Despedir',font=('Arial',12),width = 15).place(x=300,y=60)ventana.mainloop()

Colocando eventos a los botones utilizaremos la propiedad command de la siguiente manera:

Creamos dos métodos para ayudarnos.

#importamos el modulo tkinterfrom Tkinter import *#Metodo encargada de Saludar al Usuariodef Saluda(): lblSaluda = Label(ventana,text='Hola '+entradaU.get(), font = ('Calibri',14)).place(x=10, y=150)#Metodo encargada de Despedir al Nomnredef Despide(): lblDespide = Label(ventana,text='Adios '+entradaN.get(), font = ('Calibri',14)).place(x=10, y=180)

ventana = Tk()ventana.geometry('500x300+100+100')ventana.title('Ventana de Eventos con Botones')#Creamos Las etiquetas fontlblUsuario = Label(text='Usuario',font=('Verdana',14)).place(x=10,y=10)lblNombre = Label(text='Nombre',font=('Agency FB',14)).place(x=10,y=50)#Creamos campos de textoentradaU = StringVar()txtUsuario = Entry(ventana,textvariable=entradaU).place(x=100,y=20)entradaN = StringVar()txtNombre = Entry(ventana,textvariable=entradaN,width = 30).place(x=100,y=60)#Creamos BotonesbtnSaludar = Button(ventana,text='Saludar',command = Saluda, font=('Arial',12),width = 15).place(x=300,y=20)

Giancarlo Escobedo Valdivia

Page 4: Tutorial de Tkinter Basico

Curso de Python Básico

btnDespedir = Button(ventana,text='Despedir',command = Despide, font=('Arial',12),width = 15).place(x=300,y=60)ventana.mainloop()

Cuadro de lista

Crearemos un cuadro de lista con algunos datos.

#importamos el modulo tkinterfrom Tkinter import *ventana = Tk()ventana.geometry('700x600+0+0')ventana.title('Ventana con Listas')lblMaterias = Label(ventana,text="Materia:").place(x=100,y=100)#creamos una ListalstMaterias = Listbox(ventana,width=50)lstMaterias.insert(0,'Programacion Basica')lstMaterias.insert(1,'Programacion Orientada a Objetos')lstMaterias.insert(2,'Sistemas Operativos')lstMaterias.insert(3,'Programacion en Python')#Eleminar elemtos de la listalstMaterias.delete(1)lstMaterias.place(x=100,y=120)ventana.mainloop()

Agregamos una etiqueta, cuadro de texto y botón para ingresar datos a mi lista

#importamos el modulo tkinterfrom Tkinter import *#Creamos la funcion para agregardef agrega(): lstMaterias.insert(END,entradaL.get())

ventana = Tk()ventana.geometry('700x600+0+0')ventana.title('Ventana con Listas')lblMaterias = Label(ventana,text="Materia:").place(x=100,y=100)#creamos una ListalstMaterias = Listbox(ventana,width=50)lstMaterias.insert(0,'Programacion Basica')lstMaterias.insert(1,'Programacion Orientada a Objetos')lstMaterias.insert(2,'Sistemas Operativos')lstMaterias.insert(3,'Programacion en Python')lstMaterias.place(x=100,y=120)#creamos uan eteqiueta,cuadro de texto y botonlblMat=Label(ventana,text="Materias:").place(x=100,y=20)entradaL = StringVar()txtMateria = Entry(ventana,textvariable=entradaL,width=40).place(x=150,y=20)btnAgregar = Button(ventana,text ='agregar',height=2,width=20, command = agrega).place(x=350,y=20)

Giancarlo Escobedo Valdivia

Page 5: Tutorial de Tkinter Basico

Curso de Python Básico

ventana.mainloop()

Combo box

#importamos el modulo tkinterfrom Tkinter import *#Creamos la funcion para agregarventana = Tk()ventana.geometry('600x600+0+0')ventana.title('Ventana con Combos')lablCalifT=Label(ventana,text='calificacionesen texto:').place(x=20,y=100)#creamos un combocobCalifT = Spinbox(ventana,values=('Reprobado','Aprobado','Sustitutorio', 'NCP')).place(x=200,y=100)

Giancarlo Escobedo Valdivia