Tk es un libre y de código abierto , multiplataforma toolkit que proporciona una biblioteca de elementos básicos de widgets de interfaz gráfica de usuario para la construcción de una interfaz gráfica de usuario (GUI) en muchos lenguajes de programación.
Autor (es) original (es) | John Ousterhout |
---|---|
Desarrollador (es) | Equipo principal de Tcl [1] |
Versión inicial | 1991 |
Lanzamiento estable | 8.6.11 / 31 de diciembre de 2020 |
Versión de vista previa | 9.0a1 / 26 de noviembre de 2019 |
Repositorio | |
Escrito en | C |
Sistema operativo | Multiplataforma |
Plataforma | Multiplataforma |
Tipo | Kit de herramientas de widgets |
Licencia | Estilo BSD [2] |
Sitio web | www |
Tk proporciona una serie de widgets comúnmente necesarios para desarrollar aplicaciones de escritorio, como botón, menú, lienzo, texto, marco, etiqueta, etc. Tk ha sido adaptado para ejecutarse en la mayoría de versiones de Linux , Mac OS , Unix y Microsoft Windows . Al igual que Tcl , Tk admite Unicode dentro del plano multilingüe básico , pero aún no se ha extendido para manejar el Unicode completo extendido actual (por ejemplo, UTF-16 de UCS-2 que admite Tk).
Tk fue diseñado para ampliarse y hay una amplia gama de extensiones disponibles que ofrecen nuevos widgets u otras capacidades. [3] [4]
Desde Tcl / Tk 8, ofrece "apariencia nativa" (por ejemplo, los menús y botones se muestran en forma de software "nativo" para cualquier plataforma dada). [5] Los aspectos más destacados de la versión 8.5 incluyen un nuevo motor de creación de temas, originalmente llamado Tk Tile, [6] pero ahora se lo conoce generalmente como "Tk temático", así como una representación mejorada de fuentes. [7] Los aspectos más destacados de la versión 8.6 incluyen compatibilidad con PNG y texto en ángulo. [8]
Historia
Tk fue desarrollado por John Ousterhout como una extensión del lenguaje de programación Tcl . Se publicó por primera vez en 1991. [9] 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 demostró ser 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. [10] 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 y la importancia de Tk en la década de 1990, Ousterhout recibió el premio ACM Software System Award en 1997 por Tcl / Tk: [11]
El interés en Tk disminuyó significativamente desde finales de la década de 1990 en adelante. La apariencia predeterminada en Unix todavía emulaba Motif , a pesar del reemplazo generalizado de Motif por kits de herramientas como FLTK , Qt y GTK . [12] Los widgets que se usaron comúnmente 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 competidores. [13]
Tk 8.5, lanzado a finales de 2007, corrigió algunos de estos problemas agregando widgets faltantes al núcleo, introduciendo un nuevo motor de temas y modernizando la apariencia en Unix. [7] Sin embargo, debido a que se requirieron algunos cambios en el código para incorporar estos avances, muchas aplicaciones existentes conservan la antigua sensación inspirada en Motif por la que Tk se había hecho conocido. [14]
Arquitectura
Tk es un marco de interfaz gráfica de usuario independiente de la plataforma desarrollado para Tcl. Desde un shell Tcl (tclsh), Tk puede invocarse usando 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. [15]
Tk tiene las siguientes características:
- Independiente de la plataforma : como Tcl, se interpreta Tk. Ha sido portado a múltiples plataformas y puede ejecutarse fácilmente en todas ellas sin modificaciones. [dieciséis]
- Personalizable : Casi todas las funciones de un widget en Tk se pueden personalizar a través de opciones durante la creación del widget o más adelante a través del comando configure. [17]
- Configurable : muchas de las opciones se pueden almacenar en una base de datos de opciones, lo que facilita 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 solo una cuestión de guardar la opción agregar comandos y ejecutarlos al cargar la aplicación. [18]
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 idiomas tienen enlaces para Tk, una lista parcial de los cuales se encuentra en el sitio web de Tk. [19] Existen enlaces para lenguajes adicionales que pueden no estar listados, incluyendo Ada (llamado TASH), [20] Haskell (llamado HTk), [21] Perl , Python (llamado Tkinter ), Ruby , Rexx y Common Lisp .
Hay varias formas de usar Tk de Perl : los módulos Tcl :: Tk y Tkx Perl, [22] ambos usan Tcl como un puente para acceder a Tk, y Perl / Tk, [23] que proporciona acceso nativo de Perl a Tk estructuras. El enlace de Python usa Tcl como puente a Tk. [24]
Características
Tk proporciona varios widgets. [25] Los widgets básicos están integrados en toplevel
widgets, que a su vez suelen estar alojados por el sistema operativo en ventanas flotantes que se pueden mover por la pantalla. [26]
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
: 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 diálogo modal y espera una respuesta.tk_getOpenFile
: Muestra un cuadro de diálogo para que el usuario seleccione un archivo para abrir.tk_getSaveFile
: Muestra un cuadro de diálogo para que el usuario seleccione un archivo para guardar.tk_messageBox
: Abre una ventana de mensaje y espera la respuesta del usuario.tk_popup
: Publica un menú emergente.toplevel
- crea y manipula widgets de alto nivel.
Administradores de geometría
Los widgets básicos se organizan en toplevel
ventanas mediante administradores de geometría: [27]
place
- coloca los widgets en ubicaciones absolutasgrid
- organiza los widgets en una cuadrículapack
- empaqueta widgets en una cavidad
Ver también
- Lista de kits de herramientas de widgets
- deseo (shell de ventana)
- Suponer
- Tkinter : un enlace Tk para Python
- Itk
- Categoría: Software que usa Tk
Referencias
- ^ "Desarrollo básico de Tcl / Tk" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ^ "Términos de licencia de Tcl / Tk" . Tcl Developer Xchange . Consultado el 4 de noviembre de 2016 .
- ^ Escribiendo un widget Tk en C , Capítulo 46 en Programación práctica en Tcl y Tk , ISBN 0-13-038560-3
- ^ "Extensiones para Tcl y Tk" . Wiki de Tcler . 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 .
- ^ a b "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 .
- ^ "SUGERENCIA # 48: Tk Widget Styling Support" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ^ "vista de árbol" . Wiki de Tcler . Consultado el 1 de noviembre de 2016 .
- ^ "SUGERENCIA # 319: Implementar la compatibilidad con versiones anteriores para los widgets con temas ttk en los widgets tk" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ^ "Página de 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 .
- ^ "ttk :: página de manual de widgets - Tk Themed Widget" . Tcl Developer Xchange . Consultado el 1 de noviembre de 2016 .
- ^ "página de 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 .
- ^ "HTk casa" . Informatik - FB3 - Uni Bremen . Consultado el 4 de noviembre de 2016 .
- ^ "Tkx :: Tutorial - Cómo utilizar Tkx" . Documentos de ActiveState . Consultado el 1 de noviembre de 2016 .
- ^ Conceptos de Perl / Tk , Capítulo 1 en Dominar Perl / Tk , ISBN 978-1565927162
- ^ Tkinter , Capítulo 2.4 en Tkinter moderno para desarrolladores de Python ocupados , 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 Tk Toolkit , ISBN 978-0321336330
- ^ Geometry Managers ', Capítulo 17.6 en Tcl y Tk Toolkit , ISBN 978-0321336330
Otras lecturas
- Ousterhout, John K .; Jones, Ken (2009). Tcl y Tk Toolkit (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 & 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, Nueva Jersey, EE. UU. ISBN 0-13-038560-3 , 2003
- J Adrian Zimmer, Tcl / Tk for Programmers , IEEE Computer Society , distribuido por John Wiley and Sons, ISBN 0-8186-8515-8 , 1998
- Mark Harrison y Michael McLennan, Programación Efectiva de 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: una guía para desarrolladores , ISBN 0123847176 , 2012
enlaces externos
- Página web oficial
- Wiki de Tcler
- Tk 8.6 Manual
- Tk docs : tutorial moderno de Tk para Tcl, Ruby, Perl y Python
- Tcl-Tk en Curlie
- Idiomas con enlace Tk