Más sobre interfaces gráficas Programación http://progra.usm.cl Repaso: estructura de un programa from Tkinter import * w = Tk() # ... w.mainloop() Repaso: widgets Repaso: crear y agregar widgets from Tkinter import * w = Tk() l = Label(w, text='Hola progra') l.pack() b1 = Button(w, text='Saludar') b1.pack() b2 = Button(w, text='Salir') b2.pack() w.mainloop() Estilo de widgets from Tkinter import * w = Tk() b1 b2 b3 b4 b5 = = = = = Button(w, Button(w, Button(w, Button(w, Button(w, b1.pack() b2.pack() b3.pack() b4.pack() b5.pack() w.mainloop() text='Lunes') text='Martes', fg='blue') text='Miercoles', bg='red') text='Jueves', bg='yellow', width=30) text='Viernes', font=('Courier', 20)) Configuraciones de estilo text width height fg bg font borderwidth texto mostrado ancho del widget altura del widget color de las letras (foreground) color del fondo (background) tipo y tamaño de letra grosor del borde Empaquetar hacia el lado from Tkinter import * w = Tk() l = Label(w, text='Nombre:') l.pack(side='left') e = Entry(w) e.pack(side='left') w.mainloop() Grillas (grid) from Tkinter import * w = Tk() ln en la ea = = = = Label(w, text='Nombre:') Entry(w) Label(w, text='Apellido:') Entry(w) ln.grid(row=0, en.grid(row=0, la.grid(row=1, ea.grid(row=1, w.mainloop() column=0) column=1) column=0) column=1) Marcos (Frame) ¿Cómo crear la siguiente interfaz? ¿Ocupamos pack o grid para ubicar los widgets? Creación de marcos w f_datos f_botones w = Tk() f_datos = Frame(w) f_botones = Frame(w) Widgets del primer marco f_datos l_n e_n l_a e_a l_e e_e = = = = = = Label(f_datos, text='Nombre:') Entry(f_datos) Label(f_datos, text='Apellido:') Entry(f_datos) Label(f_datos, text='Edad:') Entry(f_datos) (y usamos .grid() para posicionarlos) Widgets del segundo marco f_botones b_guardar = Button(f_botones, text='Guardar') b_cerrar = Button(f_botones, text='Cerrar') b_guardar.pack(side='left') b_cerrar.pack(side='left') Programa completo from Tkinter import * w = Tk() f_datos = Frame(w) f_botones = Frame(w) l_n e_n l_a e_a l_e e_e = = = = = = Label(f_datos, text='Nombre:') Entry(f_datos) Label(f_datos, text='Apellido:') Entry(f_datos) Label(f_datos, text='Edad:') Entry(f_datos) b_guardar = Button(f_botones, text='Guardar') b_cerrar = Button(f_botones, text='Cerrar') l_n.grid(row=0, e_n.grid(row=0, l_a.grid(row=1, e_a.grid(row=1, l_e.grid(row=2, e_e.grid(row=2, column=0) column=1) column=0) column=1) column=0) column=1) b_guardar.pack(side='left') b_cerrar.pack(side='left') f_datos.pack() f_botones.pack() w.mainloop() Ejercicio: calculador de edad Ejercicio: tabla de multiplicar Ejercicio: cachipún