Tk es un conjunto de herramientas de widgets multiplataforma que proporciona una biblioteca de elementos básicos de widgets de interfaz gráfica de usuario (GUI) para construir una interfaz gráfica de usuario en muchos lenguajes de programación. Es un software libre y de código abierto publicado bajo una licencia de software de estilo BSD .
Tk proporciona numerosos widgets necesarios para desarrollar aplicaciones de escritorio, como botones, menús, lienzos, texto, marcos, etiquetas, etc. Tk se ha adaptado para funcionar en la mayoría de las distribuciones de Linux , macOS , Unix y Microsoft Windows . Al igual que Tcl , Tk 8.6 admite Unicode dentro del Plano Multilingüe Básico , mientras que Tk 9 admite todo el rango de Unicode .
Tk fue diseñado para ser extendido, y existe una amplia gama de extensiones disponibles que ofrecen nuevos widgets u otras capacidades. [ 4 ] [ 5 ]
Desde Tcl/Tk 8, ofrece una "apariencia y sensación nativas" (por ejemplo, los menús y botones se muestran como en el software "nativo" de cualquier plataforma). [ 6 ] Las novedades de la versión 8.5 incluyen un nuevo motor de temas, originalmente llamado Tk Tile, [ 7 ] pero ahora generalmente se le conoce como "Tk con temas", así como una representación de fuentes mejorada. [ 8 ] Las novedades de la versión 8.6 incluyen compatibilidad con PNG y texto en ángulo. [ 9 ]
Historia
Tk fue desarrollado por John Ousterhout como una extensión para el lenguaje de scripting Tcl . Se lanzó públicamente por primera vez en 1991. [ 10 ] El versionado de Tk se realizó por separado de Tcl hasta la versión 8.0.
Tk fue escrito originalmente para Unix/X11 y resultó extremadamente popular entre los programadores en la década de 1990 debido a que era más fácil de aprender y usar que Motif y otros kits de herramientas X11 de la época. [ 11 ] Tk también fue portado a las plataformas Microsoft Windows y Macintosh, comenzando con Tk 4.2 y mejorado con apariencia y sensación nativas en Tk 8.0 (lanzado en 1997). Para destacar la popularidad y la importancia de Tk en la década de 1990, Ousterhout recibió el premio ACM Software System Award en 1997 por Tcl/Tk: [ 12 ]
El lenguaje de scripting Tcl permite a los desarrolladores crear sistemas complejos a partir de componentes preexistentes. El framework Tk integrado proporciona un mecanismo sencillo para crear interfaces gráficas de usuario. Juntos, constituyen una valiosa adición al repertorio de software.
El interés en Tk disminuyó significativamente a partir de finales de la década de 1990. La apariencia predeterminada en Unix seguía emulando a Motif , a pesar de que Motif fue reemplazado por conjuntos de herramientas como FLTK , Qt y GTK . [ 13 ] Los widgets que se volvieron de uso común en las 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 competidores. [ 14 ]
Tk 8.5, lanzado a finales de 2007, corrigió algunos de estos problemas al agregar widgets faltantes al núcleo, introducir un nuevo motor de temas y modernizar la apariencia en Unix. [ 8 ] Sin embargo, debido a que se requirieron algunos cambios en el código para incorporar estos avances, muchas aplicaciones existentes conservan la apariencia antigua inspirada en Motif por la que Tk se había hecho conocido. [ 15 ]
Arquitectura
Tk es un marco de trabajo GUI independiente de la plataforma desarrollado para Tcl. Desde un intérprete de comandos Tcl (tclsh), se puede invocar Tk usando el comando package require Tk. El programa wish (Windowing SHell) proporciona una forma de ejecutar un intérprete de comandos tclsh en una ventana gráfica, además de proporcionar Tk. [ 16 ]
Tk tiene las siguientes características:
- Independiente de la plataforma : Tk se ha portado 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 son personalizables mediante opciones durante la creación del widget o posteriormente mediante el comando configure. [ 18 ]
- Configurable : Muchas de las opciones se pueden almacenar en una base de datos de opciones, lo que facilita enormemente la parametrización del aspecto de una aplicación (como la combinación de colores). Esto también significa que almacenar las opciones específicas de la aplicación es tan sencillo como guardar los comandos para agregar opciones y ejecutarlos al cargar la aplicación. [ 19 ]
Enlaces de lenguaje
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 la cual se encuentra en el sitio web de Tk. [ 20 ] Existen enlaces para lenguajes adicionales que podrían no estar listados, incluyendo Ada (llamado TASH), [ 21 ] Go (a través de tk9.0), [ 22 ] Haskell (llamado HTk), [ 23 ] Perl , Python (llamado Tkinter ), R (a través del paquete estándar: tcltk), Ruby , Rexx y Common Lisp .
Existen varias formas de usar Tk desde Perl : los módulos Perl Tcl::Tk y Tkx, [ 24 ] ambos utilizan Tcl como puente para acceder a Tk, y Perl/Tk, [ 25 ] que proporciona acceso nativo de Perl a las estructuras de Tk. El enlace de Python utiliza Tcl como puente a Tk. [ 26 ]
Características
Tk proporciona varios widgets. [ 27 ] 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. [ 28 ]
Widgets básicos
buttoncanvascheckbuttoncomboboxentryframelabellabelframelistboxmenumenubuttonmessagenotebookpanedwindowprogressbarradiobuttonscalescrollbarseparatorsizegripspinboxtexttk_optionMenutreeview
Widgets de nivel superior
tk_chooseColor– Muestra un cuadro de diálogo para que el usuario seleccione un color.tk_chooseDirectory– Muestra un cuadro de diálogo para que el usuario seleccione un directorio.tk_dialog– Crea un cuadro de diálogo modal y espera una respuesta.tk_getOpenFile– Muestra un cuadro de diálogo para que el usuario seleccione el archivo que desea abrir.tk_getSaveFile– Muestra un cuadro de diálogo para que el usuario seleccione un archivo para guardar.tk_messageBox– Muestra una ventana emergente con un mensaje y espera la respuesta del usuario.tk_popup– muestra un menú emergente.toplevel– Crea y manipula widgets de nivel superior.
Gestores de geometría
Los widgets básicos se organizan en toplevelventanas mediante gestores de geometría: [ 29 ]
place– posiciona los widgets en ubicaciones absolutasgrid– organiza los widgets en una cuadrículapack– Empaqueta los widgets en una cavidad
Véase también
- Lista de kits de herramientas de widgets
- deseo (Vincular)
- Esperar
- Tkinter : una interfaz de Tk para Python.
- Categoría: Software que utiliza Tk (software)
Referencias
- ↑ "Desarrollo del núcleo Tcl/Tk" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ↑ " [ TCLCORE ] Tk 9.0.4 LANZADO" . 26 de junio de 2026 . Consultado el 27 de junio de 2026 .
- ↑ "Términos de licencia de Tcl/Tk" . Tcl Developer Xchange . Consultado el 4 de noviembre de 2016 .
- ↑ Cómo escribir un widget Tk en C , Capítulo 46 de Programación práctica en Tcl y Tk , ISBN 0-13-038560-3
- ↑ "Extensiones para Tcl y Tk" . Wiki de Tcl . Consultado el 1 de noviembre de 2016 .
- ↑ "Tcl/Tk 8.0" . Tcl Developer Xchange . 18 de septiembre de 2013. Consultado el 1 de julio de 2014 .
- ↑ "Tile: un motor de temas mejorado para Tk" . SourceForge . Consultado el 4 de noviembre de 2016 .
- 1 2 "Anuncio de lanzamiento de Tcl/Tk 8.5" . Tcl Developer Xchange . 18 de septiembre de 2013. Consultado el 1 de julio de 2014 .
- ↑ "Anuncio de lanzamiento de Tcl/Tk 8.6" . Tcl Developer Xchange . 20 de septiembre de 2013. Consultado el 1 de julio de 2014 .
- ↑ Ousterhout, John. "Historia de Tcl" . Tcl Developer Exchange . Consultado el 1 de abril de 2010 .
- ↑ "Tk Backgrounder" . TkDocs . Consultado el 4 de noviembre de 2016 .
- ↑ "John K Ousterhout - Ganador del premio" . Premios ACM . Consultado el 4 de noviembre de 2016 .
- ↑ "CONSEJO N.° 48: Soporte de estilo de widgets Tk" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ↑ "treeview" . Wiki de Tcler . Consultado el 1 de noviembre de 2016 .
- ↑ "CONSEJO N.° 319: Implementar compatibilidad con versiones anteriores para widgets con temas ttk en widgets tk" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ↑ "página del manual de deseos - Aplicaciones Tk" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ↑ "Cómo compilar Tcl" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ↑ "Página del manual de ttk::widget - Widget con tema Tk" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ↑ "Página del manual de opciones - Comandos integrados" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ↑ "Idiomas con enlace Tk" . Wiki de Tcler . Consultado el 1 de julio de 2014 .
- ↑ "TASH" . SourceForge . Consultado el 1 de julio de 2014 .
- ↑ "tk9.0: El kit de herramientas GUI multiplataforma sin CGo para Go" . Paquetes de Go . Consultado el 22 de noviembre de 2024 .
- ↑ «HTk casa» . Informática - FB3 - Uni Bremen . Consultado el 4 de noviembre de 2016 .
- ↑ "Tkx::Tutorial - Cómo usar Tkx" . Documentación de ActiveState . Consultado el 1 de noviembre de 2016 .
- ↑ Conceptos de Perl/Tk , Capítulo 1 en Dominando Perl/Tk , ISBN 978-1565927162
- ↑ Tkinter , Capítulo 2.4 en Modern Tkinter for Busy Python Developers , ASIN B0071QDNLO
- ↑ "Comandos Tk, versión 8.6.6" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ↑ Widgets , Capítulo 17.2 en Tcl y el kit de herramientas Tk , ISBN 978-0321336330
- ↑ Gestores de geometría , Capítulo 17.6 en Tcl y el kit de herramientas Tk , ISBN 978-0321336330
Lecturas adicionales
- Ousterhout, John K .; Jones, Ken (2009). Tcl y el kit de herramientas Tk (2.ª ed.). Addison Wesley. ISBN 978-0-321-33633-0. Consultado el 4 de noviembre de 2012 .
- Foster-Johnson, Eric (1997). Aplicaciones gráficas con Tcl y Tk (2.ª ed.). Nueva York, NY: M&T Books. ISBN 1-55851-569-0. Consultado el 4 de noviembre de 2012 .
- Brent B. Welch, Programación práctica en Tcl y Tk , Prentice Hall , Upper Saddle River, NJ, EE. UU., ISBN 0-13-038560-3, 2003
- J. Adrian Zimmer, Tcl/Tk para programadores. Archivado el 4 de abril de 2017 en Wayback Machine , IEEE Computer Society , distribuido por John Wiley and Sons, ISBN. 0-8186-8515-8, 1998
- Mark Harrison y Michael McLennan, Programación eficaz en Tcl/Tk , Addison-Wesley , Reading, MA, EE. UU., ISBN 0-201-63474-0, 1998
- Bert Wheeler, Tcl/Tk 8.5 Programming Cookbook , Packt Publishing , Birmingham, Inglaterra, Reino Unido, ISBN 1849512981, 2011
- Clif Flynt Tcl/Tk, Tercera edición: Guía para desarrolladores , ISBN 0123847176, 2012
Enlaces externos
- Sitio web oficial
- Wiki de Tcler
- Manual Tk 8.6
- Documentación de Tk : tutorial moderno de Tk para Tcl, Ruby, Perl y Python.
- Lenguajes con enlace Tk
- Tk (software)
- Interfaces de programación de aplicaciones
- Bibliotecas informáticas gratuitas
- Familia de lenguajes de programación Tcl
- Kits de herramientas de widgets