Tutorial de Tkinter Basico
-
Upload
giancarlo-escobedo-valdivia -
Category
Documents
-
view
18 -
download
0
description
Transcript of 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
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
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
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
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