Tkinter es un conjunto de herramientas de interfaz gráfica de usuario (GUI) que debe probar si desea explorar el poder de Python en la creación de aplicaciones de escritorio.

Aquí, echamos un vistazo a los conceptos básicos del módulo GUI de Tkinter.

Configuración de Tkinter

Normalmente, no es necesario instalar tkinter por separado si ha instalado una versión posterior de Python, comenzando con Python 3. Sin embargo, es posible que la biblioteca no funcione con versiones antiguas de Python. Este es un problema común para los usuarios de Mac y Linux, ya que estos sistemas operativos generalmente vienen con versiones anteriores de Python de forma predeterminada.

Generalmente, para usar el tkinter módulo, asegúrese de descargar e instalar la última versión compatible de Python en su PC desde el python.org sitio web.

Si está en Mac, como alternativa, puede descargar la última versión de ActiveTcl, una tkinter compilador de ActiveState.

Cómo utilizar Tkinter

Tkinter depende de su incorporado

instagram viewer
TK clase. Y resume todos los eventos dentro de la GUI en un bucle principal. Por lo tanto, la bucle principal envoltorio hace tu tkinter código ejecutable.

Para empezar tkinter:

de tkinter import Tk
Tk (). Mainloop ()

Ejecutar el código de arriba hace girar un vacío tkinter marco.

Las funciones de personalización de Tkinter, sin embargo, están en sus widgets integrados.

Para utilizar estos widgets, puede importarlos desde tkinter por reemplazo de tkinter import Tk con:

desde tkinter import *
t = Tk ()
t.mainloop ()

También puede ajustar el tamaño de la ventana con el geometría función y luego especifique un título usando la título widget de tkinter:

t = Tk ()
t.geometry ("600 x 600")
t.title ("Tutorial de Tk")
t.mainloop ()

Tkinter le permite escribir textos sin formato directamente en la GUI usando el Etiqueta widget:

t = Tk ()
Label (t, text = "Tutorial de MUO Tkinter"). Grid ()
t.mainloop ()

La red() El método, sin embargo, es una alternativa al paquete() método. Pega sus widgets a la GUI, haciéndolos visibles.

También puede especificar una fuente para su Etiqueta texto:

t = Tk ()
Label (t, text = "MUO Tkinter tutorial", font = (60)). Grid ()
t.mainloop ()

Los botones son algunos de los widgets más utilizados en tkinter. Y puede agregar estos botones en los que se puede hacer clic a su GUI utilizando los diversos widgets de botones incorporados.

Aquí se explica cómo agregar un botón principal a su GUI usando el Botón widget:

t = Tk ()
Botón (t, text = "Clickable", bg = "black", fg = "white"). Grid ()
t.mainloop ()

La bg y fg Las palabras clave describen el color de fondo del botón y el color del texto dentro de él, respectivamente.

También puede ajustar la dimensión del botón incluyendo el altura y ancho parámetros:

t = Tk ()
Botón (t, text = "Clickable", bg = "black", fg = "white", height = "2", width = "10"). Grid ()
t.mainloop ()

Aquí está la salida para eso:

Y si desea que el botón sea más atractivo visualmente, puede incluir un alivio palabra clave y luego ajuste el ancho de su borde:

t = Tk ()
Botón (t, text = "Se puede hacer clic", bg = "azul", fg = "blanco",
altura = 2, ancho = 10, relieve = ELEVADO, ancho del borde = 6) .grid ()
t.mainloop ()

Y eso se ve así:

Reemplazar ELEVADO con PLANO para ver cómo se concreta.

Puede agregar tantos botones como desee. Pero tenga cuidado de evitar la superposición de contenido.

Para evitar la superposición, puede especificar la posición de la fila y la columna para cada botón:

t = Tk ()
Botón (t, texto = 1, bg = "negro", fg = "blanco"). Cuadrícula (fila = 1, columna = 1)
Botón (t, texto = 2, bg = "negro", fg = "blanco"). Cuadrícula (fila = 2, columna = 1)
Botón (t, texto = 3, bg = "negro", fg = "blanco"). Cuadrícula (fila = 3, columna = 1)
Botón (t, texto = 4, bg = "negro", fg = "blanco"). Cuadrícula (fila = 4, columna = 1)
t.mainloop ()

Un opcional mando palabra clave, sin embargo, agrega eventos a la Botón widget. En esencia, ancla una función opcional que maneja ciertos eventos cuando hace clic en un botón.

El siguiente código, por ejemplo, multiplica el valor de cada botón por 6 cuando hace clic en él. Y se basa en una función predefinida:

def buttonpress (r):
r = 6 * r
Etiqueta (t, texto = r, fuente = (60)). Cuadrícula (fila = 5, columna = 2)
t = Tk ()
Botón (t, texto = 1, bg = "negro", fg = "blanco", ancho = 10, alto = 2,
command = lambda: buttonpress (1)). grid (fila = 1, columna = 1, pady = 6)
Botón (t, texto = 2, bg = "negro", fg = "blanco", ancho = 10,
command = lambda: buttonpress (2)). grid (fila = 2, columna = 1, pady = 6)
Botón (t, texto = 3, bg = "negro", fg = "blanco", ancho = 10,
command = lambda: buttonpress (3)). grid (fila = 3, columna = 1, pady = 6)
Botón (t, texto = 4, bg = "negro", fg = "blanco", ancho = 10,
command = lambda: buttonpress (4)). grid (fila = 4, columna = 1, pady = 6)
t.mainloop ()

En el código anterior, presionar botón maneja el evento de multiplicación. La Botón widget luego apunta a ese controlador de eventos usando un anónimo lambda función.

Y si estás preocupado por el pady palabra clave, separa claramente cada botón en la fila. Reemplazando esto con padx separa los botones a lo largo de la columna. Y puede usar ambas palabras clave simultáneamente para separar los botones en ambos ejes como desee.

Dicho esto, no querrás reinventar la rueda para cada botón como hiciste en el código anterior. Esto ralentiza el tiempo de ejecución, además hace que su código sea difícil de leer y restringir.

Pero puedes usar un bucle for para evitar esta repetición.

Así que aquí hay una versión mejor y más corta del código anterior:

def buttonpress (r):
r = 6 * r
Etiqueta (t, texto = r, fuente = (60)). Cuadrícula (fila = 5, columna = 2)
t = Tk ()
a = [1, 4, 6, 7]
porque yo en un:
j = lambda y = i: botón presionar (y)
Botón (t, texto = i, bg = "negro", fg = "blanco", ancho = 10, alto = 2,
comando = j) .grid (fila = i, columna = 1, pady = 6)
t.mainloop ()

Botones de menú y botones de verificación

Exploremos más a fondo el poder de por bucle para agregar botones de menú a su GUI:

desde tkinter import *
t = Tk ()
botones = ["Archivos", "Panel de control", "Menú", "Configuración", "Ayuda"]
m = 0
para i en rango (len (botones)):
# Obtenga cada texto en la matriz de botones usando un índice de lista a medida que m aumenta.
# Luego deje que la columna aumente en 1 a lo largo de la matriz:

Botón de menú (t, texto = botones [m], bg = "azul", fg = "blanco"). Cuadrícula (fila = 5, columna = i)
m + = 1
t.mainloop ()

Agregar botones de verificación a su GUI también es bastante fácil:

t = Tk ()
Botón de verificación (t, text = "Seleccionar opción"). Grid ()
t.mainloop ()

Siéntase libre de multiplicar ese botón de verificación usando el por loop, como hicimos antes.

La Menú widget le permite diseñar menús desplegables en los que se puede hacer clic en tkinter.

Como se dijo anteriormente, tkinter ofrece muchas opciones de widgets. Y usará algunos de ellos mientras diseña su menú desplegable.

Estas son algunas de las opciones comunes de widgets que encontrará al hacer un menú desplegable:

  • add_cascade: Muestra una etiqueta de menú y la pega donde pertenece.
  • add_separator: Demarca submenús y los agrupa en submenús superiores e inferiores.
  • add_command: Aquí es donde le da un nombre a su submenú. En última instancia, acepta un argumento de comando en el que puede especificar un controlador de eventos.

Aquí hay un ejemplo desplegable que usa estas tres opciones:

desde tkinter import *
t = Tk ()
fileOptions = ["Nuevo", "abrir", "Guardar", "Guardar como"]
fileOptionsAfterseparator = ["Importar", "Exportar", "Salir"]
viewOptions = ["Transformar", "Editar", "Crear"]
menuBar = Menú (t)
file = Menu (menuBar, tearoff = 0)
para i en fileOptions:
file.add_command (etiqueta = i, comando = Ninguno)
file.add_separator ()
para i en fileOptionsAfterseparator:
file.add_command (etiqueta = i, comando = Ninguno)
menuBar.add_cascade (etiqueta = "Archivo", menú = archivo)
Ver = Menú (barra de menú, corte = 0)
for i in viewOpciones:
View.add_command (etiqueta = i, comando = Ninguno)
menuBar.add_cascade (label = "Ver", menu = Ver)
t.config (menu = menuBar)
t.mainloop ()

Mira cómo se ve eso:

Menú de opciones de Tkinter

Un Menú de opciones, a diferencia del Menú menú desplegable, cambia su etiqueta a una opción seleccionada.

Aunque puede especificar un valor de etiqueta predeterminado para un menú de opciones, no tiene etiqueta por defecto.

Relacionados: Ideas de proyectos de Python adecuadas para principiantes

Aquí se explica cómo crear un menú de opciones en tkinter:

t = Tk ()
Omenu = StringVar () # establecer el tipo de variable de las opciones
Omenu.set ("MUO") #especifique un valor predeterminado para el icono de menú
OptionMenu (t, Omenu, "MUO", "Amazon", "Tutorial"). Grid ()
t.mainloop ()

Cree una aplicación de escritorio reutilizable con Tkinter

Tkinter ofrece una variedad de características que lo ayudan a crear aplicaciones de escritorio con GUI interactivas. Aunque puede que no tenga muchas características de embellecimiento flexibles como algunos otros módulos de la GUI de Python, sigue siendo una herramienta útil que vale la pena explorar. Y aunque los ejemplos aquí solo muestran algunos de los conceptos básicos, tkinter ofrece funciones más avanzadas que puede probar.

Dicho esto, puede crear una calculadora de escritorio con GUI, hacer un mini editor de texto o incluso crear una aplicación de escritorio con GUI para administrar sus inventarios. Si desea extender sus alas y convertirse en un importante GUI de escritorio, incluso puede consultar otros módulos GUI de Python.

Correo electrónico
GUI? ¿Qué es una interfaz gráfica de usuario?

¿Utiliza una GUI? Lo más probable es que los tenga porque los usa todos los días.

Leer siguiente

Temas relacionados
  • Programación
  • Pitón
Sobre el Autor
Idowu Omisola (88 Artículos publicados)

Idowu es un apasionado de la tecnología inteligente y la productividad. En su tiempo libre, juega con la codificación y cambia al tablero de ajedrez cuando está aburrido, pero también le encanta romper con la rutina de vez en cuando. Su pasión por mostrarle a la gente el camino en torno a la tecnología moderna lo motiva a escribir más.

Más de Idowu Omisola

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse