Ejemplos de La GUI de Python
Ejemplos de La GUI de Python
de Tkinter)
Mokhtar EbrahimPublicada: enero 22, 2018Última actualización: enero 10, 2019
En este tutorial, aprenderemos a desarrollar interfaces gráficas de
usuario (GUI del inglés Graphics User Interfaces) escribiendo
algunos ejemplos de la GUI de Python usando el paquete Tkinter.
Ad by Valueimpression
Tabla de contenidos
Crear tu primera aplicación GUI
Crear un widget label (etiqueta)
o Establecer tamaño de fuente de etiqueta
o Establecer el tamaño de una ventana
Agregar un widget button
o Cambiar los colores de fondo y primer plano de un botón
o Manejar el evento click de un botón
Entrada de datos usando la clase Entry (Tkinter textbox)
o Establecer el foco en el widget de entrada
o Deshabilitar el widget de entrada
Agregar un widget combobox
Agregar un widget Checkbutton (Tkinter checkbox)
o Establecer el estado de un Checkbutton
Agregar widgets radio button
o Obtener el valor del radio button (opción seleccionada)
Adicionar un widget ScrolledText (Tkinter textarea)
o Establecer el contenido del scrolledtext
o Borrar/limpiar el contenido de un scrolledtext
Crear un MessageBox
o Mostrar mensajes de error y de advertencia
o Mostrar diálogos de pregunta-respuesta
Agregar un SpinBox (widget de números)
o Establecer el valor por defecto del Spinbox
Adicionar el widget Progressbar
o Cambiar el color de un Progressbar
Adicionar un diálogo para archivos (elegir archivo y directorio)
o Especificar los tipos de archivo (filtro por la extensión del
archivo)
Adicionar una barra de menú
Adicionar un widget Notebook (control de pestañas)
o Agregar widgets a las pestañas
Adicionar espacio para los widgets (separación o padding)
Ad by Valueimpression
Ad by Valueimpression
from tkinter import *
window = Tk()
window.title("Welcome to LikeGeeks app")
lbl.grid(column=0, row=0)
window.mainloop()
Y este es el resultado:
btn.grid(column=1, row=0)
window = Tk()
window.geometry('350x200')
lbl = Label(window, text="Hello")
lbl.grid(column=0, row=0)
btn.grid(column=1, row=0)
window.mainloop()
Ad by Valueimpression
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
lbl.grid(column=0, row=0)
def clicked():
btn.grid(column=1, row=0)
window.mainloop()
window = Tk()
lbl.grid(column=0, row=0)
txt = Entry(window,width=10)
txt.grid(column=1, row=0)
def clicked():
btn.grid(column=2, row=0)
window.mainloop()
lbl.configure(text= res)
window = Tk()
lbl.grid(column=0, row=0)
txt = Entry(window,width=10)
txt.grid(column=1, row=0)
def clicked():
lbl.configure(text= res)
btn.grid(column=2, row=0)
window.mainloop()
combo = Combobox(window)
Ad by Valueimpression
from tkinter import *
window = Tk()
combo = Combobox(window)
combo.grid(column=0, row=0)
window.mainloop()
window = Tk()
window.geometry('350x200')
chk_state = BooleanVar()
window.mainloop()
Verifica el resultado:
chk_state.set(0) #uncheck
chk_state.set(1) #check
Estos ejemplos dan el mismo resultado que con BooleanVar .
Ad by Valueimpression
from tkinter import *
window = Tk()
window.geometry('350x200')
rad2.grid(column=1, row=0)
rad3.grid(column=2, row=0)
window.mainloop()
Aquí un ejemplo:
rad1 = Radiobutton(window,text='First', value=1, command=clicked)
def clicked():
# Do what you need
¡Bastante simple!
window = Tk()
selected = IntVar()
def clicked():
print(selected.get())
rad1.grid(column=0, row=0)
rad2.grid(column=1, row=0)
rad3.grid(column=2, row=0)
btn.grid(column=3, row=0)
window.mainloop()
txt = scrolledtext.ScrolledText(window,width=40,height=10)
window = Tk()
window.geometry('350x200')
txt = scrolledtext.ScrolledText(window,width=40,height=10)
txt.grid(column=0,row=0)
window.mainloop()
¡Grandioso!
Crear un MessageBox
Para mostrar un cuadro de mensaje usando Tkinter, puedes usar
la librería messagebox , de esta manera:
from tkinter import messagebox
¡Bastante simple!
Vamos a mostrar un cuadro de mensaje cuando el usuario haga
click en un botón.
from tkinter import *
window = Tk()
window.geometry('350x200')
def clicked():
btn.grid(column=0,row=0)
window.mainloop()
Cuando hagas click en el botón, un cuadro de mensajes
informativo aparecerá.
window.geometry('350x200')
spin.grid(column=0,row=0)
window.mainloop()
var.set(36)
window = Tk()
window.geometry('350x200')
style = ttk.Style()
style.theme_use('default')
style.configure("black.Horizontal.TProgressbar", background='black')
bar['value'] = 70
bar.grid(column=0, row=0)
window.mainloop()
file = filedialog.askopenfilename()
¡Fácil!
menu = Menu(window)
menu.add_command(label='File')
window.config(menu=menu)
window = Tk()
menu = Menu(window)
new_item = Menu(menu)
new_item.add_command(label='New')
menu.add_cascade(label='File', menu=new_item)
window.config(menu=menu)
window.mainloop()
De esta manera, puedes agregar tantos elementos como quieras.
from tkinter import *
window = Tk()
menu = Menu(window)
new_item = Menu(menu)
new_item.add_command(label='New')
new_item.add_separator()
new_item.add_command(label='Edit')
menu.add_cascade(label='File', menu=new_item)
window.config(menu=menu)
window.mainloop()
window = Tk()
tab_control = ttk.Notebook(window)
tab1 = ttk.Frame(tab_control)
tab_control.add(tab1, text='First')
tab_control.pack(expand=1, fill='both')
window.mainloop()
window = Tk()
tab_control = ttk.Notebook(window)
tab1 = ttk.Frame(tab_control)
tab2 = ttk.Frame(tab_control)
tab_control.add(tab1, text='First')
tab_control.add(tab2, text='Second')
lbl1.grid(column=0, row=0)
lbl2.grid(column=0, row=0)
tab_control.pack(expand=1, fill='both')
window.mainloop()
Adicionar espacio para los widgets (separación o
padding)
Puedes añadir separación a tus controles para que se vean bien
organizados, usando las propiedades padx y pady .
¡Así de simple!
Gracias.