Você está na página 1de 5

Curso de Python Bsico

TUTORIAL DE MANEJO DEL TKINTER


Comenzaremos con el cdigo de una ventana. Este cdigo es lo bsico 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 tamao y ubicacin en la pantalla usamos el
mtodo geometry y para darle un ttulo el mtodo title.
#importamos el modulo tkinter
from Tkinter import *
#Creamos una ventana
ventana = Tk()
#Asignar un tamao a la ventana
#geometry('ancho X alto + posx + posy'
ventana.geometry('500x300+100+100')
#Asignamos un ttulo 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 aadiendo cdigo de manipulacin de la ventana con el pasar del
tutorial.

Label
En el siguiente cdigo veremos cmo crear un label y colocarlo a la ventana con
el mtodo pack pero el problema es que se colocan automticamente.
from Tkinter import *
ventana = Tk()
ventana.geometry('500x300+100+100')
ventana.title('Ventana con Etiquetas
(Labels)')
#Creamos Las etiquetas
lblUsuario = Label(text='Usuario')
lblDatos = Label(text='Giancarlo Escobedo')
#Agregamos la eiqueta lblUsuarioa la
ventana
lblUsuario.pack()
lblDatos.pack()
ventana.mainloop()

Giancarlo Escobedo Valdivia

Curso de Python Bsico


Para poder darle una ubicacin precisa en el ventana utilizaremos otro mtodo
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 ubicacin deseada.
from Tkinter import *
ventana = Tk()
ventana.geometry('500x300+100+100')
ventana.title('Ventana con Etiquetas (Labels)')
#Creamos Las etiquetas
lblUsuario =
Label(text='Usuario').place(x=100,y=20)
lblDatos = Label(text='Giancarlo
Escobedo').place(x=210,y=20)
ventana.mainloop()

Otra forma de dar ubicacin a los labels es con el mtodo grib. Hay que tener en
cuenta que utilizaremos la ventana como una grilla. Tambin utilizaremos una
funcin para cambiar el color y el relleno de la etiqueta y la funcin sticky para la
ubicacin 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 relleno
lblUsuario = 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 mtodo del campo de texto, Utilizaremos la palabra entry para crear
campos de texto, el campo de texto tiene un tamao de 20 caracteres por
defecto por lo cual con la propiedad width podemos modificarla, utilizamos el
mtodo set para ingresar texto.
#importamos el modulo tkinter
from Tkinter import *
ventana = Tk()
ventana.geometry('500x300+100+100')
ventana.title('Ventana con Cuadro de texto')
#Creamos Las etiquetas font
lblUsuario =
Label(text='Usuario',font=('Verdana',14)).place(x=10,y=10)

Giancarlo Escobedo Valdivia

Curso de Python Bsico


lblNombre = Label(text='Nombre',font=('Agency
FB',14)).place(x=10,y=50)
#Creamos campos de texto
entradaU = 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()

Botones
Para la creacin de Botones utilizaremos el mtodo Button.

#importamos el modulo tkinter


from Tkinter import *
ventana = Tk()
ventana.geometry('500x300+100+100')
ventana.title('Ventana con Cuadro de texto')
#Creamos Las etiquetas font
lblUsuario = 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 texto
entradaU = 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 Botones
btnSaludar = 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 mtodos para ayudarnos.
#importamos el modulo tkinter
from Tkinter import *
#Metodo encargada de Saludar al Usuario
def Saluda():
lblSaluda = Label(ventana,text='Hola '+entradaU.get(),
font = ('Calibri',14)).place(x=10, y=150)
#Metodo encargada de Despedir al Nomnre
def Despide():

Giancarlo Escobedo Valdivia

Curso de Python Bsico


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 font
lblUsuario = 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 texto
entradaU = 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 Botones
btnSaludar = Button(ventana,text='Saludar',command = Saluda,
font=('Arial',12),width = 15).place(x=300,y=20)
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 tkinter
from 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 Lista
lstMaterias = 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 lista
lstMaterias.delete(1)
lstMaterias.place(x=100,y=120)
ventana.mainloop()
Agregamos una etiqueta, cuadro de texto y botn para ingresar datos a mi lista
#importamos el modulo tkinter
from Tkinter import *
#Creamos la funcion para agregar
def agrega():
lstMaterias.insert(END,entradaL.get())
ventana = Tk()

Giancarlo Escobedo Valdivia

Curso de Python Bsico


ventana.geometry('700x600+0+0')
ventana.title('Ventana con Listas')
lblMaterias = Label(ventana,text="Materia:").place(x=100,y=100)
#creamos una Lista
lstMaterias = 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 boton
lblMat=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)
ventana.mainloop()

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

Giancarlo Escobedo Valdivia

Você também pode gostar