Tkinter
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 18 de marzo de 2017; las comprobaciones requieren
20 ediciones .
Tkinter (del inglés Tk inter face ) es una biblioteca gráfica multiplataforma basada en eventos basada en herramientas Tk (ampliamente distribuida en el mundo de GNU / Linux y otros sistemas similares a UNIX , también adaptada a Microsoft Windows ), escrita por Steen Lumholt (Steen Lumholt) y Guido van Rossum [1] . Incluido en la biblioteca estándar de Python .
Tkinter es un software gratuito distribuido bajo una licencia de Python
[2] .
Cita
La biblioteca está diseñada para organizar diálogos en un programa utilizando una interfaz gráfica ( GUI ) con ventanas.
La biblioteca contiene componentes gráficos comunes:
- Toplevel/Tk - Ventana de nivel superior (widget raíz).
- Marco - Marco. Contiene otros componentes visuales, utilizados para agrupar widgets.
- Etiqueta - Etiqueta. Muestra texto o gráficos.
- Entrada: campo de entrada de texto de una sola línea.
- Texto: un campo de entrada de texto con formato. Le permite mostrar, editar y dar formato al texto utilizando varios estilos, así como incrustar imágenes y ventanas en el texto.
- Lienzo - Lienzo. Se puede utilizar para mostrar primitivas gráficas como rectángulos, elipses, líneas, así como texto, imágenes y ventanas.
- botón Un simple botón para ejecutar un comando y otras acciones.
- Botón de radio - Cambiar. Representa uno de los valores alternativos para alguna variable. Suele trabajar en grupo. Cuando el usuario selecciona una opción, se deselecciona el elemento previamente seleccionado en el mismo grupo.
- Botón de verificación: casilla de verificación. Similar a un Radiobutton, pero con múltiples capacidades de selección, proporcionando una variable separada para cada instancia de widget.
- Escala: escala con un control deslizante. Le permite establecer un valor numérico moviendo el control deslizante.
- Cuadro de lista - Lista. Muestra una lista de la que el usuario puede seleccionar uno o más elementos.
- Barra de desplazamiento - Barra de desplazamiento. Se puede usar junto con algunos otros componentes para desplazarlos.
- Menú - Menú. Sirve para organizar menús emergentes (popup) y desplegables (pulldown).
- Botón de menú: botón de menú. Se utiliza para organizar un menú desplegable.
- Mensaje - Mensaje. Similar a Etiqueta, pero le permite envolver líneas largas y cambiar el tamaño fácilmente.
- Menú de opciones
- Caja giratoria
- EtiquetaMarco
- PanedWindow
También se debe tener en cuenta que Python tiene un conjunto de herramientas adicionales en los siguientes módulos:
- Lienzo
- Diálogo
- Diálogo de archivo
- FixTk
- texto desplazado
- diálogo simple
- Tix
- constantes tk
- Tkdnd
- tkColorChooser
- tkCommonDialog
- tkFileDialog
- tkFuente
- tkMessageBox
- tkSimpleDialog
- Tortuga
Ejemplo: Programa Hola Mundo
de tkinter importar *
raíz = Tk ()
raíz _ título ( "¡Hola mundo!" )
raíz _ geometría ( '300x40' )
def button_clicked ():
imprimir ( "¡Hola mundo!" )
cerrar ( ):
raíz _ destruir ()
raíz _ salir ()
botón = Botón ( raíz , texto = "Presionarme" , comando = botón_clic )
botón _ paquete ( llenar = AMBOS )
raíz _ protocolo ( 'WM_DELETE_WINDOW' , cerrar )
raíz _ bucle principal ()
Analizando el programa
El ejemplo anterior demuestra la aplicación GUI más simple en Python. La primera línea del programa importa el módulo tkinter (antes de la versión 3.1 del lenguaje Python, el nombre del módulo tkinter se escribía en código con una letra mayúscula - "Tkinter"):
de tkinter importar *
Como resultado de la importación en el espacio de nombres del programa (script), hay nombres integrados en Tkinter, a los que se puede acceder directamente. Cabe señalar que la importación masiva de nombres puede generar conflictos. Además, el intérprete tarda más en encontrar el correcto en la lista de nombres disponibles.
El siguiente comando crea la ventana raíz (root) del programa (en adelante, la ventana):
raíz = Tk ()
El siguiente comando cambia el título de la ventana:
raíz _ título ( "¡Hola mundo!" )
El siguiente comando establece las dimensiones de la ventana:
raíz _ geometría ( '300x40' )
La siguiente es la definición del controlador de función para el evento "botón del mouse presionado".
def button_clicked ():
print ( "¡Hola mundo!" )
Manejador de funciones del evento "cerrando la ventana principal". Detiene el bucle principal de la aplicación y destruye la ventana principal. Sin él, el programa puede cerrarse solo si el proceso del intérprete de Python finaliza. Debido a que la función usa la raíz de la variable global, la declaración de la función en sí debe ir después de la declaración de la variable raíz.
def cerrar ():
raíz . destruir ()
raíz . salir ()
Cree un botón con el texto "Púlsame" y vincúlelo a la función de controlador definida anteriormente:
botón = Botón ( raíz , texto = "Presionarme" , comando = botón_clic )
“Empacamos” el botón creado usando el administrador de diseño del paquete. fill=BOTH (también fill="both") le dice al botón que ocupe todo el espacio disponible (ancho y alto) en el widget raíz principal:
botón _ paquete ( llenar = AMBOS )
Vincule el evento de cierre de la ventana principal con la función de controlador de cierre:
raíz _ protocolo ( 'WM_DELETE_WINDOW' , cerrar )
Iniciamos el bucle principal de la aplicación:
raíz _ bucle principal ()
Como resultado de presionar el botón, se mostrará el mensaje "¡Hola, mundo!" en la consola. El mensaje se mostrará cada vez que se presione el botón.
Véase también
Notas
- ↑ Matt Conway, Tkinter Life Preserver Archivado el 31 de mayo de 2016 en Wayback Machine .
- ↑ Resumen de Tkinter Archivado el 13 de noviembre de 2013. (Inglés)
Literatura
- John E Grayson. Programación Python y Tkinter. - Publicaciones de Manning, 1999. - 658 p. — ISBN 9781884777813 .
- Suzi R.A. Creación de aplicaciones con una interfaz gráfica de usuario // El lenguaje de programación Python: un tutorial. - M. : Intuit, Binom. Laboratorio del Conocimiento, 2006. - 328 p. — ISBN 5-9556-0058-2 .
Enlaces
Juegos de herramientas (conjuntos) de elementos GUI |
---|
nivel bajo |
|
---|
alto nivel | sistema operativo amigo |
|
---|
macOS y macOS |
- Cacao
- macapp
- MacZoop
- Planta de energía
|
---|
ventanas |
|
---|
UNIX , bajo X |
|
---|
Plataforma cruzada _ | basado en flash |
|
---|
Basado en XML, AJAX o SVG |
|
---|
Basado en Java |
|
---|
Basado en C o C++ |
|
---|
Basado en Common Lisp |
|
---|
Basado en Pascual |
|
---|
Basado en Python |
|
---|
Basado en Objective-C |
|
---|
|
---|
|
---|
Pitón |
---|
Comunidad |
|
---|
Implementaciones |
|
---|
Otro |
|
---|