Más sobre interfaces gráficas

Anuncio
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
Descargar