tkinter Tutorial
Empezando con tkinter
Buscar..
Observaciones
Tkinter (" Tk Inter face") es un paquete multiplataforma estándar de python para crear interfaces gráficas de usuario (GUI). Proporciona acceso a un intérprete de Tcl subyacente con el kit de herramientas Tk, que en sí mismo es una biblioteca de interfaz de usuario gráfica multiplataforma y multiplataforma.
Tkinter no es la única biblioteca GUI para python, pero es la que viene de serie. Las bibliotecas de GUI adicionales que se pueden usar con python incluyen wxPython , PyQt y kivy .
La mayor fortaleza de Tkinter es su ubicuidad y simplicidad. Funciona de forma inmediata en la mayoría de las plataformas (Linux, OSX, Windows) y se completa con una amplia gama de widgets necesarios para las tareas más comunes (botones, etiquetas, lienzos de dibujo, texto de varias líneas, etc.).
Como herramienta de aprendizaje, tkinter tiene algunas características que son únicas entre los kits de herramientas GUI, como las fuentes con nombre, las etiquetas de enlace y el rastreo de variables.
Diferencias entre python 2 y 3
Tkinter se mantiene prácticamente sin cambios entre python 2 y python 3, con la diferencia principal de que se cambió el nombre del paquete tkinter y de los módulos.
Importando en python 2.x
En Python 2.x, el paquete tkinter se llama Tkinter
, y los paquetes relacionados tienen sus propios nombres. Por ejemplo, lo siguiente muestra un conjunto típico de instrucciones de importación para python 2.x:
import Tkinter as tk
import tkFileDialog as filedialog
import ttk
Importando en Python 3.x
Aunque la funcionalidad no cambió mucho entre python 2 y 3, los nombres de todos los módulos tkinter han cambiado. El siguiente es un conjunto típico de instrucciones de importación para Python 3.x:
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
Otras lecturas
Versiones
Tcl
Versión | Fecha de lanzamiento |
---|---|
8.6 | 2016-07-27 |
8.5 | 2016-02-12 |
8.4 | 2013-06-01 |
8.3 | 2002-10-18 |
8.2 | 1999-12-16 |
8.1 | 1999-05-26 |
8.0 | 1999-03-09 |
Pitón
Versión | Fecha de lanzamiento |
---|---|
3.6 | 2016-12-23 |
3.5 | 2015-09-13 |
3.4 | 2014-03-17 |
3.3 | 2012-09-29 |
3.2 | 2011-02-20 |
3.1 | 2009-06-26 |
3.0 | 2008-12-03 |
2.7 | 2010-07-03 |
2.6 | 2008-10-02 |
2.5 | 2006-09-19 |
2.4 | 2004-11-30 |
2.3 | 2003-07-29 |
2.2 | 2001-12-21 |
2.1 | 2001-04-15 |
2.0 | 2000-10-16 |
Instalación o configuración
Tkinter viene preinstalado con los binarios del instalador de Python para Mac OS X y la plataforma Windows. Por lo tanto, si instala Python desde los archivos binarios oficiales para Mac OS X o la plataforma Windows, puede utilizar Tkinter.
Para las versiones Debian de Linux, debe instalarlo manualmente utilizando los siguientes comandos.
Para Python 3
sudo apt-get install python3-tk
Para Python 2.7
sudo apt-get install python-tk
Las distribuciones de Linux con yum installer pueden instalar el módulo tkinter usando el comando:
yum instalar tkinter
Verificando instalación
Para verificar si ha instalado Tkinter correctamente, abra su consola de Python y escriba el siguiente comando:
import tkinter as tk # for Python 3 version
o
import Tkinter as tk # for Python 2.x version
Ha instalado Tkinter correctamente, si el comando anterior se ejecuta sin un error.
Para verificar la versión de Tkinter, escriba los siguientes comandos en su REPL de Python:
Para python 3.x
import tkinter as tk
tk._test()
Para python 2.x
import Tkinter as tk
tk._test()
Nota: Importar Tkinter as tk
no es obligatorio, pero es una buena práctica ya que ayuda a mantener la coherencia entre las versiones.
¡Hola Mundo! (mínimo)
Probemos nuestro conocimiento básico de tkinter creando el clásico "¡Hola mundo!" programa.
Primero, debemos importar tkinter, esto variará según la versión (consulte la sección de comentarios sobre "Diferencias entre Python 2 y 3")
En Python 3, el módulo tkinter
tiene una t minúscula:
import tkinter as tk
En Python 2, el módulo Tkinter
tiene una T mayúscula:
import Tkinter as tk
Usar as tk
no es estrictamente necesario, pero lo usaremos para que el resto de este ejemplo funcione de la misma manera para ambas versiones.
Ahora que hemos importado el módulo tkinter, podemos crear la raíz de nuestra aplicación usando la clase Tk
:
root = tk.Tk()
Esto actuará como la ventana para nuestra aplicación. (Tenga en cuenta que las ventanas adicionales deben ser instancias de Toplevel
lugar)
Ahora que tenemos una ventana, vamos a agregarle texto con una Label
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
Una vez que la aplicación esté lista, podemos iniciarla (ingresar al bucle del evento principal ) con el método mainloop
root.mainloop()
Esto abrirá y ejecutará la aplicación hasta que se detenga al cerrar la ventana o al llamar a las funciones que salen de las devoluciones de llamada (que se root.destroy()
más adelante) como root.destroy()
.
Poniendolo todo junto:
import tkinter as tk # Python 3.x Version
#import Tkinter as tk # Python 2.x Version
root = tk.Tk()
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
root.mainloop()
Y algo como esto debería aparecer:
¡Hola Mundo! (modular, orientado a objetos)
import tkinter as tk
class HelloWorld(tk.Frame):
def __init__(self, parent):
super(HelloWorld, self).__init__(parent)
self.label = tk.Label(self, text="Hello, World!")
self.label.pack(padx=20, pady=20)
if __name__ == "__main__":
root = tk.Tk()
main = HelloWorld(root)
main.pack(fill="both", expand=True)
root.mainloop()
Nota: es posible heredar de casi cualquier widget tkinter, incluida la ventana raíz. Heredar de tkinter.Frame
es, al menos, posiblemente el más flexible, ya que admite interfaces de documentos múltiples (MDI), interfaces de documentos únicos (SDI), aplicaciones de página única y aplicaciones de página múltiple.