Tk (software)

Kit de herramientas o marco de GUI

Gracias
Autor(es) original(es)Juan Ousterhout
Desarrollador(es)Equipo central de Tcl [1]
Lanzamiento inicial1991 ; hace 33 años ( 1991 )
Versión estable
9.0.0 [2]  / 26 de septiembre de 2024
Repositorio
  • núcleo.tcl.tk/tk
Escrito endo
Sistema operativoMultiplataforma
PlataformaMultiplataforma
TipoKit de herramientas de widgets
LicenciaEstilo BSD [3]
Sitio webtcl.tk

Tk es un conjunto de herramientas de widgets multiplataforma que proporciona una biblioteca de elementos básicos de widgets GUI para crear una interfaz gráfica de usuario (GUI) en muchos lenguajes de programación. Es un software gratuito y de código abierto publicado bajo una licencia de software de estilo BSD .

Tk proporciona muchos widgets que se necesitan comúnmente para desarrollar aplicaciones de escritorio, como botones, menús, lienzos, textos, marcos, etiquetas, etc. Tk ha sido adaptado para ejecutarse en la mayoría de los sistemas operativos Linux , macOS , Unix y Microsoft Windows . Al igual que Tcl , Tk admite Unicode dentro del plano multilingüe básico , pero aún no se ha ampliado para manejar el Unicode completo extendido actual (por ejemplo, UTF-16 de UCS-2 que admite Tk).

Tk fue diseñado para ser ampliado y hay una amplia gama de extensiones disponibles que ofrecen nuevos widgets u otras capacidades. [4] [5]

Desde Tcl/Tk 8, ofrece una "apariencia nativa" (por ejemplo, los menús y botones se muestran de la misma manera que el software "nativo" para cualquier plataforma dada). [6] Los aspectos más destacados de la versión 8.5 incluyen un nuevo motor de temas, originalmente llamado Tk Tile, [7] pero que ahora se conoce generalmente como "Tk temático", así como una representación de fuentes mejorada. [8] Los aspectos más destacados de la versión 8.6 incluyen soporte para PNG y texto en ángulo. [9]

Historia

Tk fue desarrollado por John Ousterhout como una extensión del lenguaje de programación Tcl . Se lanzó al público por primera vez en 1991. [10] El control de versiones de Tk se realizó por separado de Tcl hasta la versión 8.0.

Tk fue escrito originalmente para Unix/X11 y resultó ser extremadamente popular entre los programadores en los años 90 en virtud de ser más fácil de aprender y usar que Motif y otros conjuntos de herramientas X11 de la época. [11] Tk también fue portado a plataformas Microsoft Windows y Macintosh, comenzando con Tk 4.2 y mejorado con apariencia nativa en Tk 8.0 (lanzado en 1997). Para marcar la popularidad e importancia de Tk en los años 90, Ousterhout recibió el premio ACM Software System Award en 1997 por Tcl/Tk: [12]

Ganador del premio al sistema de software ACM: John K Ousterhout

Para el lenguaje de programación Tcl, que permite a los desarrolladores crear sistemas complejos a partir de componentes preexistentes. El Tk integrado proporciona un mecanismo simple para crear interfaces gráficas de usuario. Juntos constituyen una poderosa incorporación al repertorio de software.

El interés en Tk disminuyó significativamente desde finales de los años 1990 en adelante. La apariencia predeterminada en Unix todavía emulaba a Motif , a pesar del reemplazo generalizado de Motif por kits de herramientas como FLTK , Qt y GTK . [13] Los widgets que se volvieron de uso común en aplicaciones (por ejemplo, árboles, cuadros combinados , cuadernos con pestañas) no estaban disponibles en el núcleo de Tk, sino solo a través de múltiples complementos, a menudo en competencia. [14]

Tk 8.5, lanzado a finales de 2007, corrigió algunos de estos problemas añadiendo widgets faltantes al núcleo, introduciendo un nuevo motor de temas y modernizando la apariencia en Unix. [8] Sin embargo, debido a que se requirieron algunos cambios de código para incorporar estos avances, muchas aplicaciones existentes conservan la apariencia inspirada en Motif por la que Tk se había hecho conocido. [15]

Arquitectura

Tk es un marco de interfaz gráfica de usuario independiente de la plataforma desarrollado para Tcl. Desde un shell Tcl (tclsh), se puede invocar Tk utilizando el comando package require Tk. El programa wish (WIndowing SHell) proporciona una forma de ejecutar un shell tclsh en una ventana gráfica, además de proporcionar Tk. [16]

Tk tiene las siguientes características:

  • Independiente de la plataforma : al igual que Tcl, Tk es interpretado. Se ha adaptado a múltiples plataformas y puede ejecutarse fácilmente en todas ellas sin modificaciones. [17]
  • Personalizable : casi todas las características de un widget en Tk se pueden personalizar a través de opciones durante la creación del widget o más tarde a través del comando de configuración. [18]
  • Configurable : muchas de las opciones se pueden almacenar en una base de datos de opciones, lo que hace que sea muy fácil parametrizar la apariencia de una aplicación (como el esquema de colores). Esto también significa que almacenar las opciones específicas de la aplicación es solo una cuestión de guardar los comandos de adición de opciones y ejecutarlos al cargar la aplicación. [19]

Enlaces de idioma

Una biblioteca escrita en un lenguaje de programación puede usarse en otro lenguaje si se escriben enlaces ; Tk está integrado con el lenguaje Tcl. Varios otros lenguajes tienen enlaces para Tk, una lista parcial de los cuales se encuentra en el sitio web de Tk. [20] Existen enlaces para lenguajes adicionales que podrían no estar incluidos en la lista, incluidos Ada (llamado TASH), [21] Haskell (llamado HTk), [22] Perl , Python (llamado Tkinter ), R (a través del paquete estándar: tcltk), Ruby , Rexx y Common Lisp .

Existen varias formas de utilizar Tk desde Perl : los módulos Tcl::Tk y Tkx de Perl [23] , que utilizan Tcl como puente para acceder a Tk, y Perl/Tk [24], que proporciona acceso nativo de Perl a las estructuras de Tk. El enlace de Python utiliza Tcl como puente a Tk. [25]

Características

Tk proporciona varios widgets. [26] Los widgets básicos están integrados en toplevelwidgets, que a su vez suelen estar alojados por el sistema operativo en ventanas flotantes que se pueden mover por la pantalla. [27]

Widgets básicos

  • button
  • canvas
  • checkbutton
  • combobox
  • entry
  • frame
  • label
  • labelframe
  • listbox
  • menu
  • menubutton
  • message
  • notebook
  • panedwindow
  • progressbar
  • radiobutton
  • scale
  • scrollbar
  • separator
  • sizegrip
  • spinbox
  • text
  • tk_optionMenu
  • treeview

Widgets de nivel superior

  • tk_chooseColor– aparece un cuadro de diálogo para que el usuario seleccione un color.
  • tk_chooseDirectory– aparece un cuadro de diálogo para que el usuario seleccione un directorio.
  • tk_dialog– crea un diálogo modal y espera una respuesta.
  • tk_getOpenFile– aparece un cuadro de diálogo para que el usuario seleccione un archivo para abrir.
  • tk_getSaveFile– aparece un cuadro de diálogo para que el usuario seleccione un archivo para guardar.
  • tk_messageBox– aparece una ventana de mensaje y espera una respuesta del usuario.
  • tk_popup– publica un menú emergente.
  • toplevel– crea y manipula widgets de nivel superior.

Gestores de geometría

Los widgets básicos se organizan en toplevelventanas mediante administradores de geometría: [28]

  • place– coloca los widgets en ubicaciones absolutas
  • grid– organiza los widgets en una cuadrícula
  • pack– empaqueta widgets en una cavidad

Véase también

Referencias

  1. ^ "Desarrollo del núcleo Tcl/Tk". Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
  2. ^ "[TCLCORE] Tk 9.0.0 LANZADO".
  3. ^ "Términos de licencia de Tcl/Tk". Tcl Developer Xchange . Consultado el 4 de noviembre de 2016 .
  4. ^ Cómo escribir un widget Tk en C , Capítulo 46 en Programación práctica en Tcl y Tk , ISBN 0-13-038560-3 
  5. ^ "Extensiones para Tcl y Tk". Wiki de Tcler . Consultado el 1 de noviembre de 2016 .
  6. ^ "Tcl/Tk 8.0". Tcl Developer Xchange . 18 de septiembre de 2013 . Consultado el 1 de julio de 2014 .
  7. ^ "Tile: un motor de creación de temas mejorado para Tk". SourceForge . Consultado el 4 de noviembre de 2016 .
  8. ^ ab "Anuncio de lanzamiento de Tcl/Tk 8.5". Tcl Developer Xchange . 18 de septiembre de 2013 . Consultado el 1 de julio de 2014 .
  9. ^ "Anuncio de lanzamiento de Tcl/Tk 8.6". Tcl Developer Xchange . 20 de septiembre de 2013 . Consultado el 1 de julio de 2014 .
  10. ^ Ousterhout, John. "Historia de Tcl". Tcl Developer Exchange . Consultado el 1 de abril de 2010 .
  11. ^ "Tk Backgrounder". TkDocs . Consultado el 4 de noviembre de 2016 .
  12. ^ "John K Ousterhout - Ganador del premio". Premios ACM . Consultado el 4 de noviembre de 2016 .
  13. ^ "CONSEJO N.° 48: Compatibilidad con estilos de widgets Tk". Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
  14. ^ "treeview". Wiki de Tcler . Consultado el 1 de noviembre de 2016 .
  15. ^ "CONSEJO N.° 319: Implementar compatibilidad con versiones anteriores para widgets temáticos de ttk en widgets de tk". Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
  16. ^ "página del manual de deseos - Aplicaciones Tk". Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
  17. ^ "Cómo compilar Tcl". Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
  18. ^ "Página del manual de ttk::widget - Widget temático de Tk". Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
  19. ^ "página del manual de opciones - Comandos integrados". Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
  20. ^ "Lenguajes con un enlace Tk". Wiki de Tcler . Consultado el 1 de julio de 2014 .
  21. ^ "TASH". SourceForge . Consultado el 1 de julio de 2014 .
  22. ^ "HTk casa". Informática - FB3 - Uni Bremen . Consultado el 4 de noviembre de 2016 .
  23. ^ "Tkx::Tutorial - Cómo usar Tkx". Documentación de ActiveState . Consultado el 1 de noviembre de 2016 .
  24. ^ Conceptos de Perl/Tk , Capítulo 1 en Mastering Perl/Tk , ISBN 978-1565927162 
  25. ^ Tkinter , Capítulo 2.4 en Tkinter moderno para desarrolladores de Python ocupados , ASIN  B0071QDNLO
  26. ^ "Tk Commands, versión 8.6.6". Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
  27. ^ Widgets , Capítulo 17.2 en Tcl y el kit de herramientas Tk , ISBN 978-0321336330 
  28. ^ Administradores de geometría , Capítulo 17.6 en Tcl y el kit de herramientas Tk , ISBN 978-0321336330 

Lectura adicional

  • Sitio web oficial
  • Wiki de Tcler
  • Manual de Tk 8.6
  • Documentación de Tk: tutorial moderno de Tk para Tcl, Ruby, Perl y Python
  • Idiomas con un enlace Tk
Obtenido de "https://es.wikipedia.org/w/index.php?title=Tk_(software)&oldid=1251995205"