Tkinter es una abreviación de Tk Interface, un conjunto de herramientas gráficas basadas en Tcl/Tk para la creación de interfaces gráficas de usuario en Python. Se trata de una biblioteca sencilla, fácil de usar e implementar en nuestras aplicaciones. Tkinter funciona perfectamente en Windows, Linux y MacOS.
Está diseñado y preparado para usarse en lenguajes dinámicos de alto nivel, como Ruby o Perl, y para su uso inmediato y sin necesidad de instalaciones adicionales.
Creación de una ventana sencilla
Para crear una ventana básica en Python con sus funciones típicas, solo se necesitan tres líneas de código. Primero se añade la biblioteca tkinter a nuestro proyecto:
from tkinter import *
Luego se declara una instancia de la clase Tk, misma que representará nuestra ventana.
ventana = Tk()
Por último, se llama al bucle principal o mainloop que mantendrá la ventana trabajando hasta que el usuario decida cerrarla.
ventana.mainloop()
Es decir, con estas tres líneas de código:
from tkinter import *
ventana = Tk()
ventana.mainloop()
Obtenemos esto:

Métodos básicos para las ventanas
Una vez creada la ventana, podemos utilizar algunos métodos integrados para hacer que nuestra ventana se ajuste a un conjunto mínimo de configuraciones, tales como:
- title(título): Establece el título de la ventana
- geometry(“anchoxalto”): Asigna el tamaño de la ventana en píxeles
- maxsize(ancho,alto): Establece el tamaño máximo al que se maximizará la ventana
- minsize(ancho,alto): Establece el tamaño mínimo al que se ajustará la ventana
- resizable(ancho,alto): Permite ajustar (1) o no (0) la ventana tanto en ancho como en alto
Por ejemplo:
from tkinter import *
ventana = Tk()
ventana.title("Ventana de prueba")
ventana.geometry("500x250")
ventana.maxsize(650,350)
ventana.minsize(200,200)
ventana.resizable(1,1)
ventana.mainloop()
Cuyo resultado podemos ver a continuación.
Configuraciones adicionales para las ventanas
La función config, permite cambiar las opciones de un componente en tkinter como colores, fondos, tamaños, etc. En el caso de las ventanas, las configuraciones más importantes son las siguientes:
- width: Define el ancho de la ventana.
- height: Define el alto de la ventana.
- padx: Añade un margen interno (padding) a la izquierda y la derecha (eje X)
- pady: Añade un margen interno (padding) arriba y abajo (eje Y)
- bg o background: Añade un color de fondo, se puede usar el color en inglés o en hexadecimal.
- cursor: Modifica el cursor del ratón que se usa dentro la ventana. Las opciones más básicas son arrow, hand1, hand2, watch, crosshair y plus.
Por ejemplo:
from tkinter import *
ventana = Tk()
ventana.title("Ventana de prueba")
ventana.config(
width=500,
height=300,
padx=10,
pady=10,
bg="#003399",
cursor="hand1"
)
ventana.resizable(0,0)
ventana.mainloop()
Da como resultado:

Quitar la barra de título de la ventana
Para quitar la barra de título de la ventana en Python, solo necesitamos la función overrideredirect, misma que al cambiar su valor a True, quitará no solo la barra de título con sus botones y todo, sino también removerá la ventana de la barra de tareas de Windows. Algo tan simple como:
ventana.overrideredirect(True)
Y si lo agregamos a nuestro ejemplo anterior, obtendremos esto:

Centrar la ventana en la pantalla
Para colocar la ventana en el centro de la pantalla, se utiliza la función eval a la cual se le entrega el comando 'tk::PlaceWindow . center', por ejemplo:
ventana.eval('tk::PlaceWindow . center')
Cuyo resultado salta a la vista:

Posicionar la ventana en una ubicación personalizada
Para colocar tu ventana en cualquier parte de la pantalla, le haremos una pequeña modificación a geometry, añadiendo la posición en el eje X y la posición en el eje Y, es decir le pasaremos un String y algunas variables de la siguiente manera:
geometry("%dx%d+%d+%d" % (ancho, alto, posiciónX, posiciónY))
Los modificadores %d igual que en lenguaje C, representan números enteros.
Por ejemplo, si queremos pegar nuestra ventana la derecha de la pantalla y que ocupe todo el alto posible, primero hay que calcular algunas cosas. Para ello, usaremos las funciones winfo_screenheight() para el alto de la pantalla y winfo_screenwidth() para el ancho. Por ejemplo:
from tkinter import *
ventana = Tk()
ventana.title("Ventana de prueba")
# 300 de ancho
ancho = 300
# El mismo alto de la pantalla
alto = ventana.winfo_screenheight()
# Al ancho de la pantalla le quito lo que ocupa la ventana
posicionX = ventana.winfo_screenwidth() - ancho
# y dejo la posición Y en 0
posicionY = 0
ventana.config(
padx=10, pady=10,
bg="#003399",
cursor="hand1"
)
ventana.geometry("%dx%d+%d+%d" % (ancho, alto, posicionX, posicionY))
ventana.overrideredirect(True)
ventana.resizable(0,0)
ventana.mainloop()
Da como resultado:

Comentario, dudas y preguntas
¡Y eso es todo! No olvides dejar tus comentarios, dudas y / o preguntas. Con gusto las respondemos.

